Improved readability of the run hack script

Signed-off-by: Konrad Ponichtera <konpon96@gmail.com>
This commit is contained in:
Konrad Ponichtera 2022-05-06 23:43:01 +02:00
parent 7d328ea1d6
commit 4573cd9c30
No known key found for this signature in database
GPG Key ID: B50B3C721B8E658F
2 changed files with 41 additions and 34 deletions

View File

@ -130,7 +130,6 @@ else
mount --rbind ${realpath_etc_ssl} /etc/ssl mount --rbind ${realpath_etc_ssl} /etc/ssl
fi fi
# shellcheck disable=SC2068
# shellcheck disable=SC2086 # shellcheck disable=SC2086
exec $dockerd $@ exec $dockerd "$@"
fi fi

View File

@ -8,6 +8,8 @@ if ! command -v dockerd &> /dev/null; then
false false
fi fi
DOCKER_COMMAND="$(command -v dockerd)"
DOCKER_GRAPHDRIVER=${DOCKER_GRAPHDRIVER:-vfs} DOCKER_GRAPHDRIVER=${DOCKER_GRAPHDRIVER:-vfs}
DOCKER_USERLANDPROXY=${DOCKER_USERLANDPROXY:-true} DOCKER_USERLANDPROXY=${DOCKER_USERLANDPROXY:-true}
@ -23,13 +25,11 @@ fi
listen_port=2375 listen_port=2375
if [ -n "$DOCKER_PORT" ]; then if [ -n "$DOCKER_PORT" ]; then
IFS=':' read -r -a ports <<< "$DOCKER_PORT" listen_port="${DOCKER_PORT##*:}"
listen_port="${ports[-1]}"
fi fi
if [ -n "$DELVE_PORT" ]; then if [ -n "$DELVE_PORT" ]; then
IFS=':' read -r -a ports <<< "$DELVE_PORT" delve_listen_port="${DELVE_PORT##*:}"
delve_listen_port="${ports[-1]}"
fi fi
extra_params="$DOCKERD_ARGS" extra_params="$DOCKERD_ARGS"
@ -41,7 +41,6 @@ if [ -n "$DOCKER_EXPERIMENTAL" ]; then
extra_params="$extra_params --experimental" extra_params="$extra_params --experimental"
fi fi
dockerd="$(command -v dockerd)"
socket=/var/run/docker.sock socket=/var/run/docker.sock
if [ -n "$DOCKER_ROOTLESS" ]; then if [ -n "$DOCKER_ROOTLESS" ]; then
user="unprivilegeduser" user="unprivilegeduser"
@ -52,36 +51,45 @@ if [ -n "$DOCKER_ROOTLESS" ]; then
socket=/tmp/docker-${uid}/docker.sock socket=/tmp/docker-${uid}/docker.sock
fi fi
args="--debug \ # shellcheck disable=SC2206
--host "tcp://0.0.0.0:${listen_port}" --host "unix://${socket}" \ args=(
--storage-driver "${DOCKER_GRAPHDRIVER}" \ --debug
--userland-proxy="${DOCKER_USERLANDPROXY}" \ --host="tcp://0.0.0.0:${listen_port}"
$storage_params \ --host="unix://${socket}"
$extra_params" --storage-driver="${DOCKER_GRAPHDRIVER}"
--userland-proxy="${DOCKER_USERLANDPROXY}"
$storage_params
$extra_params
)
dockerd=("$DOCKER_COMMAND")
if [ -n "$DELVE_PORT" ]; then if [ -n "$DELVE_PORT" ]; then
dockerd="dlv --listen=0.0.0.0:$delve_listen_port \ dockerd=(
--headless=true \ dlv
--log \ --listen="0.0.0.0:$delve_listen_port"
--api-version=2 \ --headless=true
--only-same-user=false \ --log
--check-go-version=false \ --api-version=2
--accept-multiclient \ --only-same-user=false
exec ${dockerd} --" --check-go-version=false
--accept-multiclient
exec "${dockerd[@]}" --
)
fi fi
echo "${dockerd} ${args}"
if [ -n "$DOCKER_ROOTLESS" ]; then if [ -n "$DOCKER_ROOTLESS" ]; then
# shellcheck disable=SC2068 dockerd=(
# shellcheck disable=SC2086 sudo -u "$user"
exec sudo -u $user \ -E DOCKERD="${dockerd[*]}"
-E DOCKERD="$dockerd" \ -E XDG_RUNTIME_DIR="/tmp/docker-${uid}"
-E XDG_RUNTIME_DIR=/tmp/docker-${uid} \ -E XDG_CONFIG_HOME="/home/${user}/.config"
-E XDG_CONFIG_HOME=/home/${user}/.config \ -E HOME="/home/${user}"
-E HOME=/home/${user} \ --
-- /go/src/github.com/docker/docker/contrib/dockerd-rootless.sh ${args} dockerd-rootless.sh
else )
# shellcheck disable=SC2086
exec ${dockerd} ${args}
fi fi
set -x
# shellcheck disable=SC2086
exec "${dockerd[@]}" "${args[@]}"