From ed03c43b2a0f7d6d072bab3ae116e1fa0c217375 Mon Sep 17 00:00:00 2001 From: Runar Borge Date: Wed, 9 Jan 2019 13:26:32 +0100 Subject: Change user on docker image to the current owner of the volume directory (GOSU) Insted of hardcoding the user used to build inside the container it will now be auto configured to be the user UID that owns the vyos-build directory This is done with the gosu utillity and a entrypoint script --- Dockerfile | 13 ++++++++----- scripts/docker-entrypoint.sh | 17 +++++++++++++++++ 2 files changed, 25 insertions(+), 5 deletions(-) create mode 100755 scripts/docker-entrypoint.sh diff --git a/Dockerfile b/Dockerfile index b35997a9..efa7e2bf 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,6 +5,7 @@ FROM debian:jessie RUN echo 'deb http://ftp.debian.org/debian jessie-backports main' | tee -a /etc/apt/sources.list &&\ apt-get update && apt-get install -y \ + gosu \ vim \ git \ make \ @@ -143,10 +144,12 @@ RUN export LATEST="$(curl -s https://checkpoint-api.hashicorp.com/v1/check/packe curl -K- | gzip -d > /usr/bin/packer && \ chmod +x /usr/bin/packer +COPY scripts/docker-entrypoint.sh /usr/local/bin/ # Create vyos_bld user account and enable sudo -RUN useradd -ms /bin/bash -u 1006 --gid users vyos_bld && \ - usermod -aG sudo vyos_bld && \ - echo "%sudo ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers +#RUN useradd -ms /bin/bash -u 1006 --gid users vyos_bld && \ +# usermod -aG sudo vyos_bld && \ +# echo "%sudo ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers -USER vyos_bld -WORKDIR /home/vyos_bld +#USER vyos_bld +#WORKDIR /home/vyos_bld +ENTRYPOINT ["docker-entrypoint.sh"] diff --git a/scripts/docker-entrypoint.sh b/scripts/docker-entrypoint.sh new file mode 100755 index 00000000..7520a8d9 --- /dev/null +++ b/scripts/docker-entrypoint.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +set -e + +# Use GOSU_USER if its specified, else wirking dir user +if [ -n "$GOSU_USER" ]; then + ID=$GOSU_USER +else + ID=$(stat -c "%u:%g" .) +fi + +# Don't use GOSU if we are root +if [ ! "$ID" = "0:0" ]; then + exec gosu $ID "$@" +else + exec "$@" +fi -- cgit v1.2.3