aboutsummaryrefslogtreecommitdiff
path: root/hack
diff options
context:
space:
mode:
authorSebastiaan van Stijn <thaJeztah@users.noreply.github.com>2022-05-10 18:34:45 +0200
committerGitHub <noreply@github.com>2022-05-10 18:34:45 +0200
commit219374e2cd1b516434ccbe9980ae42a4611bcbcc (patch)
treec372926dafc17a4d3df2f4223340b6bcf86914c8 /hack
parent3228dbaaa90afaa62a897353ba8c9ae305748314 (diff)
parent4573cd9c300db88fc6d0e4585c1ce91b7e113e71 (diff)
Merge pull request #43275 from kponichtera/43274-delve-debugger
Added Delve debugger to the development container
Diffstat (limited to 'hack')
-rw-r--r--hack/make/run59
1 files changed, 47 insertions, 12 deletions
diff --git a/hack/make/run b/hack/make/run
index 1c433dd6a0..87fe6d06aa 100644
--- a/hack/make/run
+++ b/hack/make/run
@@ -8,6 +8,8 @@ if ! command -v dockerd &> /dev/null; then
false
fi
+DOCKER_COMMAND="$(command -v dockerd)"
+
DOCKER_GRAPHDRIVER=${DOCKER_GRAPHDRIVER:-vfs}
DOCKER_USERLANDPROXY=${DOCKER_USERLANDPROXY:-true}
@@ -23,8 +25,11 @@ fi
listen_port=2375
if [ -n "$DOCKER_PORT" ]; then
- IFS=':' read -r -a ports <<< "$DOCKER_PORT"
- listen_port="${ports[-1]}"
+ listen_port="${DOCKER_PORT##*:}"
+fi
+
+if [ -n "$DELVE_PORT" ]; then
+ delve_listen_port="${DELVE_PORT##*:}"
fi
extra_params="$DOCKERD_ARGS"
@@ -36,7 +41,6 @@ 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"
@@ -44,17 +48,48 @@ if [ -n "$DOCKER_ROOTLESS" ]; then
# 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"
+# shellcheck disable=SC2206
+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
+)
+
+dockerd=("$DOCKER_COMMAND")
+
+if [ -n "$DELVE_PORT" ]; then
+ dockerd=(
+ dlv
+ --listen="0.0.0.0:$delve_listen_port"
+ --headless=true
+ --log
+ --api-version=2
+ --only-same-user=false
+ --check-go-version=false
+ --accept-multiclient
+ exec "${dockerd[@]}" --
+ )
+fi
+
+if [ -n "$DOCKER_ROOTLESS" ]; then
+ dockerd=(
+ sudo -u "$user"
+ -E DOCKERD="${dockerd[*]}"
+ -E XDG_RUNTIME_DIR="/tmp/docker-${uid}"
+ -E XDG_CONFIG_HOME="/home/${user}/.config"
+ -E HOME="/home/${user}"
+ --
+ dockerd-rootless.sh
+ )
+fi
-echo "${dockerd} ${args}"
+set -x
# shellcheck disable=SC2086
-exec "${dockerd}" ${args}
+exec "${dockerd[@]}" "${args[@]}"