File: run

package info (click to toggle)
docker.io 20.10.24%2Bdfsg1-1%2Bdeb12u1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bookworm-proposed-updates
  • size: 60,824 kB
  • sloc: sh: 5,621; makefile: 593; ansic: 179; python: 162; asm: 7
file content (60 lines) | stat: -rw-r--r-- 1,535 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#!/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}