diff options
author | Sebastiaan van Stijn <thaJeztah@users.noreply.github.com> | 2022-05-10 18:34:45 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-05-10 18:34:45 +0200 |
commit | 219374e2cd1b516434ccbe9980ae42a4611bcbcc (patch) | |
tree | c372926dafc17a4d3df2f4223340b6bcf86914c8 /hack | |
parent | 3228dbaaa90afaa62a897353ba8c9ae305748314 (diff) | |
parent | 4573cd9c300db88fc6d0e4585c1ce91b7e113e71 (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/run | 59 |
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[@]}" |