I'm using Docker (1.3.1) to build RPMs inside a container:
docker run -v /home/matt/build:/build build-rpm /build/build-pkg.sh
This works fine (my user is in the docker
group, so I don't need to sudo) and drops a completed .rpm
file in the current directory. The problem is that the file is created as owned by root.
How can I arrange it so that the file is created owned by the same user as I run docker with?
You could try to create (in the Dockerfile of a custom image) a user and set it as the one used by the container
RUN adduser --system --group --shell /bin/sh auser \
&& mkdir /home/auser/bin
USER auser
Then check if a docker run -v /home/matt/build:/build build-rpm
mounts the shared folder in /build as auser
.
Another option mentioned in issue 2259:
If you
chown
the volume (on the host side) before bind-mounting it, it will work.
In that case, you could do:
mkdir /tmp/www
chown 101:101 /tmp/www
docker run -v /tmp/www:/var/www ubuntu stat -c "%U %G" /var/www
(Assuming that
101:101
is theUID:GID
of thewww-data
user in your container.)