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:
```
#!/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
}
# 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
#
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
# 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 \