Skip to content

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
jcfr added 2 commits April 20, 2016 13:38
The script should not attempt to create a folder "/vol0" in the filesystem
of the host, instead the directory "~/aosp-root" is created.
@jcfr jcfr force-pushed the support-current-user-with-arbitrary-uid-gid branch from 4976622 to f1b7f6a Compare April 20, 2016 17:38
@kylemanna kylemanna merged commit 4fd3a9d into kylemanna:master Apr 21, 2016
@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.

2 participants