#!/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