#!/usr/bin/with-contenv bash echo "**** installing docker and docker compose ****" if [ -f /usr/bin/apt ]; then DISTRONAME="ubuntu" else DISTRONAME="alpine" fi ARCH=$(uname -m) if [ -f "/docker-compose-${DISTRONAME}/docker-compose_${ARCH}" ] ; then echo "Copying over docker and docker-compose binaries" mv "/docker-compose-${DISTRONAME}/docker-compose_${ARCH}" /usr/local/bin/docker-compose mv "/docker-compose-${DISTRONAME}/docker_${ARCH}" /usr/local/bin/docker chmod +x /usr/local/bin/docker-compose rm -rf /docker-compose-ubuntu /docker-compose-alpine else echo "**** docker and docker-compose already installed, skipping ****" fi if [ -S /var/run/docker.sock ]; then DOCKER_GID=$(stat -c '%g' "/var/run/docker.sock") if id -G abc | grep -qw "$DOCKER_GID"; then exit 0 else DOCKER_NAME=$(getent group "${DOCKER_GID}" | awk -F: '{print $1}') if [ -z "${DOCKER_NAME}" ]; then DOCKER_NAME="dockergroup" groupadd -g "${DOCKER_GID}" "${DOCKER_NAME}" fi usermod -aG "${DOCKER_NAME}" abc fi elif [ -n "$DOCKER_HOST" ]; then echo "**** /var/run/docker.sock is not mapped, therefore, docker client will only work with a remote docker service ****" else echo "**** Please map /var/run/docker.sock for access to docker service on host. Alternatively you can manually define a remote host address with the docker cli option -H ****" fi