123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- #!/usr/bin/env bash
- set -e
- rm -rf "$DEST"
- if ! command -v dockerd &> /dev/null; then
- echo >&2 'error: binary-daemon or dynbinary-daemon must be run before run'
- false
- fi
- DOCKER_GRAPHDRIVER=${DOCKER_GRAPHDRIVER:-vfs}
- DOCKER_USERLANDPROXY=${DOCKER_USERLANDPROXY:-true}
- # example usage: DOCKER_STORAGE_OPTS="dm.basesize=20G,dm.loopdatasize=200G"
- storage_params=""
- if [ -n "$DOCKER_STORAGE_OPTS" ]; then
- IFS=','
- for i in ${DOCKER_STORAGE_OPTS}; do
- storage_params="--storage-opt $i $storage_params"
- done
- unset IFS
- fi
- listen_port=2375
- if [ -n "$DOCKER_PORT" ]; then
- IFS=':' read -r -a ports <<< "$DOCKER_PORT"
- listen_port="${ports[-1]}"
- fi
- extra_params="$DOCKERD_ARGS"
- if [ "$DOCKER_REMAP_ROOT" ]; then
- extra_params="$extra_params --userns-remap $DOCKER_REMAP_ROOT"
- fi
- if [ -n "$DOCKER_EXPERIMENTAL" ]; then
- extra_params="$extra_params --experimental"
- fi
- dockerd="dockerd"
- socket=/var/run/docker.sock
- if [ -n "$DOCKER_ROOTLESS" ]; then
- user="unprivilegeduser"
- uid=$(id -u $user)
- # shellcheck disable=SC2174
- mkdir -p -m 700 "/tmp/docker-${uid}"
- chown $user "/tmp/docker-${uid}"
- dockerd="sudo -u $user -E XDG_RUNTIME_DIR=/tmp/docker-${uid} -E HOME=/home/${user} -- dockerd-rootless.sh"
- socket=/tmp/docker-${uid}/docker.sock
- fi
- args="--debug \
- --host "tcp://0.0.0.0:${listen_port}" --host "unix://${socket}" \
- --storage-driver "${DOCKER_GRAPHDRIVER}" \
- --userland-proxy="${DOCKER_USERLANDPROXY}" \
- $storage_params \
- $extra_params"
- echo "${dockerd} ${args}"
- # shellcheck disable=SC2086
- exec "${dockerd}" ${args}
|