From 86071d2aba0ff35e7bee19ad6fedf93ae4546521 Mon Sep 17 00:00:00 2001 From: Mateusz Pilat Date: Wed, 17 Apr 2019 12:19:10 +0200 Subject: Add fix for Molecule Docker Molecule Docker was not running when built by the root user Issue-ID: OOM-1808 Change-Id: I27c3ecb6d5670ac1c447acba688b25e10d5a5a4d Signed-off-by: Mateusz Pilat --- ansible/test/molecule-docker/Dockerfile | 10 ++++++---- ansible/test/molecule-docker/build.sh | 2 ++ 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/ansible/test/molecule-docker/Dockerfile b/ansible/test/molecule-docker/Dockerfile index e4207f2e..61817317 100644 --- a/ansible/test/molecule-docker/Dockerfile +++ b/ansible/test/molecule-docker/Dockerfile @@ -3,6 +3,7 @@ FROM quay.io/ansible/molecule:2.20 ARG USER_ID ARG GROUP_ID ARG DOCKER_GROUP_ID +ARG DOCKER_USER # When user/group provided, create user to have matching ids (for the host user) # to avoid this docker writing files as root owned @@ -10,11 +11,12 @@ RUN if [ ${USER_ID:-0} -ne 0 ] && [ ${GROUP_ID:-0} -ne 0 ]; then \ # shadow needed for addgroup # sshpass needed for accessing docker_host (localhost) with ssh and without password prompt apk --no-cache add shadow sshpass && \ - addgroup -g ${GROUP_ID} molecule && \ - adduser -D -u ${USER_ID} -G molecule molecule && \ + addgroup -g ${GROUP_ID} ${DOCKER_USER} && \ + adduser -D -u ${USER_ID} -G ${DOCKER_USER} ${DOCKER_USER} && \ # Add user to same docker group as in docker_host to be able to use docker driver as sudo groupadd docker-host -g ${DOCKER_GROUP_ID} && \ - usermod -aG ${DOCKER_GROUP_ID} molecule \ + usermod -aG ${DOCKER_GROUP_ID} ${DOCKER_USER} \ ;fi -USER molecule +USER ${DOCKER_USER} + diff --git a/ansible/test/molecule-docker/build.sh b/ansible/test/molecule-docker/build.sh index 0b65f2a7..b613e466 100755 --- a/ansible/test/molecule-docker/build.sh +++ b/ansible/test/molecule-docker/build.sh @@ -20,6 +20,7 @@ SCRIPT_DIR=$(dirname "${0}") LOCAL_PATH=$(readlink -f "$SCRIPT_DIR") +if [ $(id -u ${USER}) -eq "0" ]; then DOCKER_USER="root"; else DOCKER_USER="molecule"; fi set -e @@ -27,6 +28,7 @@ docker build \ --build-arg USER_ID=$(id -u ${USER}) \ --build-arg GROUP_ID=$(id -g ${USER}) \ --build-arg DOCKER_GROUP_ID=$(getent group docker | cut -f 3 -d ':') \ + --build-arg DOCKER_USER=${DOCKER_USER} \ -t molecule-dev:2.20.0 \ ${LOCAL_PATH} -- cgit 1.2.3-korg