summaryrefslogtreecommitdiffstats
path: root/ansible/test/molecule-docker
diff options
context:
space:
mode:
Diffstat (limited to 'ansible/test/molecule-docker')
-rw-r--r--ansible/test/molecule-docker/Dockerfile20
-rwxr-xr-xansible/test/molecule-docker/build.sh32
2 files changed, 52 insertions, 0 deletions
diff --git a/ansible/test/molecule-docker/Dockerfile b/ansible/test/molecule-docker/Dockerfile
new file mode 100644
index 00000000..e4207f2e
--- /dev/null
+++ b/ansible/test/molecule-docker/Dockerfile
@@ -0,0 +1,20 @@
+FROM quay.io/ansible/molecule:2.20
+
+ARG USER_ID
+ARG GROUP_ID
+ARG DOCKER_GROUP_ID
+
+# When user/group provided, create user to have matching ids (for the host user)
+# to avoid this docker writing files as root owned
+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 && \
+ # 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 \
+;fi
+
+USER molecule
diff --git a/ansible/test/molecule-docker/build.sh b/ansible/test/molecule-docker/build.sh
new file mode 100755
index 00000000..0b65f2a7
--- /dev/null
+++ b/ansible/test/molecule-docker/build.sh
@@ -0,0 +1,32 @@
+#! /usr/bin/env bash
+
+# COPYRIGHT NOTICE STARTS HERE
+
+# Copyright 2019 © Samsung Electronics Co., Ltd.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# COPYRIGHT NOTICE ENDS HERE
+
+SCRIPT_DIR=$(dirname "${0}")
+LOCAL_PATH=$(readlink -f "$SCRIPT_DIR")
+
+set -e
+
+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 ':') \
+ -t molecule-dev:2.20.0 \
+ ${LOCAL_PATH}
+