mirror of
https://github.com/kylemanna/docker-aosp
synced 2026-08-11 16:33:05 +00:00
utils/aosp: Update script and Dockerfile to work with any host user uid/gid
This commit introduces the "docker_entrypoint" script that will create a user with uid/gid matching given `USER_ID` and `GROUP_ID` (or default to `1000` if not provided). Fixes #9 This approach works around missing docker feature discussed in docker/docker#7198 and allow to have executable in the docker container manipulating files in the shared volume owned by the `USER_ID:GROUP_ID` The utility script `aosp` has also been updated to automatically set `USER_ID` and `GROUP_ID` to the value matching the current user by invoking "docker run" with ``` -e USER_ID=$(id -u) -e GROUP_ID=$(id -g) ``` Finally, the output has also been updated to be more verbose. For example: ``` $ AOSP_VOL=/home/jcfr/Projects/aosp-root/ aosp id aosp: Checking if /home/jcfr/Projects/aosp-root/aosp exists aosp: Checking if /home/jcfr/Projects/aosp-root/aosp exists - ok aosp: Checking if /home/jcfr/Projects/aosp-root/ccache exists aosp: Checking if /home/jcfr/Projects/aosp-root/ccache exists - ok docker_entrypoint: Creating user UID/GID [1000/1000] docker_entrypoint: Creating user UID/GID [1000/1000] - done docker_entrypoint: Copying .gitconfig and .ssh/config to new user home docker_entrypoint: Copying .gitconfig and .ssh/config to new user home - done docker_entrypoint: Creating /tmp/ccache and /asop directory docker_entrypoint: Creating /tmp/ccache and /asop directory - done uid=1000(aosp) gid=1000(aosp) groups=1000(aosp) ```
This commit is contained in:
+5
-9
@@ -43,14 +43,8 @@ RUN curl -O http://mirrors.kernel.org/ubuntu/pool/universe/o/openjdk-8/openjdk-8
|
||||
apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||
|
||||
# All builds will be done by user aosp
|
||||
RUN groupadd -r aosp && useradd --create-home -g aosp aosp
|
||||
COPY gitconfig /home/aosp/.gitconfig
|
||||
COPY ssh_config /home/aosp/.ssh/config
|
||||
RUN chown aosp:aosp /home/aosp/.gitconfig && \
|
||||
chown aosp:aosp -R /home/aosp/.ssh
|
||||
|
||||
RUN mkdir -p /tmp/ccache /aosp && \
|
||||
chown aosp:aosp /tmp/ccache /aosp
|
||||
COPY gitconfig /root/.gitconfig
|
||||
COPY ssh_config /root/.ssh/config
|
||||
|
||||
# The persistent data will be in these two directories, everything else is
|
||||
# considered to be ephemeral
|
||||
@@ -61,5 +55,7 @@ ENV USE_CCACHE 1
|
||||
ENV CCACHE_DIR /tmp/ccache
|
||||
|
||||
# Work in the build directory, repo is expected to be init'd here
|
||||
USER aosp
|
||||
WORKDIR /aosp
|
||||
|
||||
COPY utils/docker_entrypoint.sh /root/docker_entrypoint.sh
|
||||
ENTRYPOINT ["/root/docker_entrypoint.sh"]
|
||||
|
||||
Reference in New Issue
Block a user