@@ -34,6 +34,16 @@ the default shell.
There are several environment variables which the containerize script
understands.
+- DOCKED_CMD: Whether to use docker or podman for running the containers.
+ podman can be used as a regular user (rootless podman), but for that
+ to work, /etc/subuid and /etc/subgid needs to containe the proper
+ entries, for such user.
+ docker is the default, for running with podman, do:
+
+ ```
+ DOCKER_CMD=podman ./automation/scripts/containerize make
+ ```
+
- CONTAINER: This overrides the container to use. For CentOS 7.2, use:
```
@@ -1,5 +1,14 @@
#!/bin/bash
+#
+# DOCKER_CMD should be either `docker` or `podman`.
+#
+# if using (rootless) podman, remember to set /etc/subuid
+# and /etc/subgid.
+#
+docker_cmd=${DOCKER_CMD:-"docker"}
+[ "$DOCKER_CMD" = "podman" ] && userns_podman="--userns=keep-id"
+
einfo() {
echo "$*" >&2
}
@@ -31,7 +40,7 @@ esac
# Use this variable to control whether root should be used
case "_${CONTAINER_UID0}" in
_1) userarg= ;;
- _0|_) userarg="-u $(id -u)" ;;
+ _0|_) userarg="-u $(id -u) $userns_podman" ;;
esac
# Save the commands for future use
@@ -49,8 +58,8 @@ tty -s && termint=t
#
if [[ "_${CONTAINER_NO_PULL}" != "_1" ]]; then
einfo "*** Ensuring ${CONTAINER} is up to date"
- docker pull ${CONTAINER} > /dev/null || \
- die "Failed to update docker container"
+ ${docker_cmd} pull ${CONTAINER} > /dev/null || \
+ die "Failed to update container"
fi
if hash greadlink > /dev/null 2>&1; then
@@ -82,7 +91,7 @@ fi
# Kick off Docker
einfo "*** Launching container ..."
-exec docker run \
+exec ${docker_cmd} run \
${userarg} \
${SSH_AUTH_SOCK:+-e SSH_AUTH_SOCK="/tmp/ssh-agent/${SSH_AUTH_NAME}"} \
-v "${CONTAINER_PATH}":/build:rw \
Right now only docker is supported, when using the containerize script for building inside containers. Enable podman as well. Note that podman can be use in rootless mode too, but for that to work the files /etc/subuid and /etc/subgid must be properly configured. For instance: dario@localhost> cat /etc/subuid dario:100000:65536 dario@localhost:> cat /etc/subgid dario:100000:65536 Signed-off-by: Dario Faggioli <dfaggioli@suse.com> --- Cc: Doug Goldstein <cardoe@cardoe.com> --- automation/build/README.md | 10 ++++++++++ automation/scripts/containerize | 17 +++++++++++++---- 2 files changed, 23 insertions(+), 4 deletions(-)