Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update Dockerfile and utils/aosp to work with arbitrary uid gid #11

Merged

Conversation

jcfr
Copy link
Contributor

@jcfr jcfr commented Apr 20, 2016

Along with including various tweaks, this PR addresses issue #9 to allow working with a current user
having an arbitrary UID/GID.

In a nutshell, it 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
moby/moby#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)

@jcfr
Copy link
Contributor Author

jcfr commented Apr 20, 2016

Cc: @dhanainme @kylemanna

…id/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 kylemanna#9

This approach works around missing docker feature discussed in
moby/moby#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)
```
@jcfr jcfr force-pushed the support-current-user-with-arbitrary-uid-gid branch from 6b55800 to 91ae4a8 Compare April 20, 2016 17:08
The script should not attempt to create a folder "/vol0" in the filesystem
of the host, instead the directory "~/aosp-root" is created.
@kylemanna
Copy link
Owner

Gave it a test last night and it works for me. Thanks for keeping the commits clean and atomic 👍

@jcfr jcfr deleted the support-current-user-with-arbitrary-uid-gid branch April 21, 2016 15:06
@jcfr
Copy link
Contributor Author

jcfr commented Apr 21, 2016

Great. Thanks for reviewing and integrating.
Jc

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants