52379fa76d
This is especially important for distributions like NixOS where `/bin/bash` doesn't exist, or for MacOS users who've installed a newer version of Bash than the one that comes with their OS. Signed-off-by: Andrew "Tianon" Page <admwiggin@gmail.com>
44 lines
1,004 B
Bash
44 lines
1,004 B
Bash
#!/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=""
|
|
if [ "$DOCKER_REMAP_ROOT" ]; then
|
|
extra_params="--userns-remap $DOCKER_REMAP_ROOT"
|
|
fi
|
|
|
|
args="--debug \
|
|
--host tcp://0.0.0.0:${listen_port} --host unix:///var/run/docker.sock \
|
|
--storage-driver "$DOCKER_GRAPHDRIVER" \
|
|
--userland-proxy="$DOCKER_USERLANDPROXY" \
|
|
$storage_params \
|
|
$extra_params"
|
|
|
|
echo dockerd $args
|
|
exec dockerd $args
|