Signed-off-by: Konrad Ponichtera <konpon96@gmail.com>
| ... | ... |
@@ -8,6 +8,8 @@ if ! command -v dockerd &> /dev/null; then |
| 8 | 8 |
false |
| 9 | 9 |
fi |
| 10 | 10 |
|
| 11 |
+DOCKER_COMMAND="$(command -v dockerd)" |
|
| 12 |
+ |
|
| 11 | 13 |
DOCKER_GRAPHDRIVER=${DOCKER_GRAPHDRIVER:-vfs}
|
| 12 | 14 |
DOCKER_USERLANDPROXY=${DOCKER_USERLANDPROXY:-true}
|
| 13 | 15 |
|
| ... | ... |
@@ -23,13 +25,11 @@ fi |
| 23 | 23 |
|
| 24 | 24 |
listen_port=2375 |
| 25 | 25 |
if [ -n "$DOCKER_PORT" ]; then |
| 26 |
- IFS=':' read -r -a ports <<< "$DOCKER_PORT" |
|
| 27 |
- listen_port="${ports[-1]}"
|
|
| 26 |
+ listen_port="${DOCKER_PORT##*:}"
|
|
| 28 | 27 |
fi |
| 29 | 28 |
|
| 30 | 29 |
if [ -n "$DELVE_PORT" ]; then |
| 31 |
- IFS=':' read -r -a ports <<< "$DELVE_PORT" |
|
| 32 |
- delve_listen_port="${ports[-1]}"
|
|
| 30 |
+ delve_listen_port="${DELVE_PORT##*:}"
|
|
| 33 | 31 |
fi |
| 34 | 32 |
|
| 35 | 33 |
extra_params="$DOCKERD_ARGS" |
| ... | ... |
@@ -41,7 +41,6 @@ if [ -n "$DOCKER_EXPERIMENTAL" ]; then |
| 41 | 41 |
extra_params="$extra_params --experimental" |
| 42 | 42 |
fi |
| 43 | 43 |
|
| 44 |
-dockerd="$(command -v dockerd)" |
|
| 45 | 44 |
socket=/var/run/docker.sock |
| 46 | 45 |
if [ -n "$DOCKER_ROOTLESS" ]; then |
| 47 | 46 |
user="unprivilegeduser" |
| ... | ... |
@@ -52,36 +51,45 @@ if [ -n "$DOCKER_ROOTLESS" ]; then |
| 52 | 52 |
socket=/tmp/docker-${uid}/docker.sock
|
| 53 | 53 |
fi |
| 54 | 54 |
|
| 55 |
-args="--debug \ |
|
| 56 |
- --host "tcp://0.0.0.0:${listen_port}" --host "unix://${socket}" \
|
|
| 57 |
- --storage-driver "${DOCKER_GRAPHDRIVER}" \
|
|
| 58 |
- --userland-proxy="${DOCKER_USERLANDPROXY}" \
|
|
| 59 |
- $storage_params \ |
|
| 60 |
- $extra_params" |
|
| 55 |
+# shellcheck disable=SC2206 |
|
| 56 |
+args=( |
|
| 57 |
+ --debug |
|
| 58 |
+ --host="tcp://0.0.0.0:${listen_port}"
|
|
| 59 |
+ --host="unix://${socket}"
|
|
| 60 |
+ --storage-driver="${DOCKER_GRAPHDRIVER}"
|
|
| 61 |
+ --userland-proxy="${DOCKER_USERLANDPROXY}"
|
|
| 62 |
+ $storage_params |
|
| 63 |
+ $extra_params |
|
| 64 |
+) |
|
| 65 |
+ |
|
| 66 |
+dockerd=("$DOCKER_COMMAND")
|
|
| 61 | 67 |
|
| 62 | 68 |
if [ -n "$DELVE_PORT" ]; then |
| 63 |
- dockerd="dlv --listen=0.0.0.0:$delve_listen_port \ |
|
| 64 |
- --headless=true \ |
|
| 65 |
- --log \ |
|
| 66 |
- --api-version=2 \ |
|
| 67 |
- --only-same-user=false \ |
|
| 68 |
- --check-go-version=false \ |
|
| 69 |
- --accept-multiclient \ |
|
| 70 |
- exec ${dockerd} --"
|
|
| 69 |
+ dockerd=( |
|
| 70 |
+ dlv |
|
| 71 |
+ --listen="0.0.0.0:$delve_listen_port" |
|
| 72 |
+ --headless=true |
|
| 73 |
+ --log |
|
| 74 |
+ --api-version=2 |
|
| 75 |
+ --only-same-user=false |
|
| 76 |
+ --check-go-version=false |
|
| 77 |
+ --accept-multiclient |
|
| 78 |
+ exec "${dockerd[@]}" --
|
|
| 79 |
+ ) |
|
| 71 | 80 |
fi |
| 72 | 81 |
|
| 73 |
-echo "${dockerd} ${args}"
|
|
| 74 |
- |
|
| 75 | 82 |
if [ -n "$DOCKER_ROOTLESS" ]; then |
| 76 |
- # shellcheck disable=SC2068 |
|
| 77 |
- # shellcheck disable=SC2086 |
|
| 78 |
- exec sudo -u $user \ |
|
| 79 |
- -E DOCKERD="$dockerd" \ |
|
| 80 |
- -E XDG_RUNTIME_DIR=/tmp/docker-${uid} \
|
|
| 81 |
- -E XDG_CONFIG_HOME=/home/${user}/.config \
|
|
| 82 |
- -E HOME=/home/${user} \
|
|
| 83 |
- -- /go/src/github.com/docker/docker/contrib/dockerd-rootless.sh ${args}
|
|
| 84 |
-else |
|
| 85 |
- # shellcheck disable=SC2086 |
|
| 86 |
- exec ${dockerd} ${args}
|
|
| 83 |
+ dockerd=( |
|
| 84 |
+ sudo -u "$user" |
|
| 85 |
+ -E DOCKERD="${dockerd[*]}"
|
|
| 86 |
+ -E XDG_RUNTIME_DIR="/tmp/docker-${uid}"
|
|
| 87 |
+ -E XDG_CONFIG_HOME="/home/${user}/.config"
|
|
| 88 |
+ -E HOME="/home/${user}"
|
|
| 89 |
+ -- |
|
| 90 |
+ dockerd-rootless.sh |
|
| 91 |
+ ) |
|
| 87 | 92 |
fi |
| 93 |
+ |
|
| 94 |
+set -x |
|
| 95 |
+# shellcheck disable=SC2086 |
|
| 96 |
+exec "${dockerd[@]}" "${args[@]}"
|