68 lines
1.9 KiB
Bash
68 lines
1.9 KiB
Bash
#!/bin/bash
|
|
source /opt/bash-utils/logger.sh
|
|
|
|
function wait_for_process () {
|
|
local max_time_wait=30
|
|
local process_name="$1"
|
|
local waited_sec=0
|
|
while ! pgrep "$process_name" >/dev/null && ((waited_sec < max_time_wait)); do
|
|
INFO "Process $process_name is not running yet. Retrying in 1 seconds"
|
|
INFO "Waited $waited_sec seconds of $max_time_wait seconds"
|
|
sleep 1
|
|
((waited_sec=waited_sec+1))
|
|
if ((waited_sec >= max_time_wait)); then
|
|
return 1
|
|
fi
|
|
done
|
|
return 0
|
|
}
|
|
|
|
sudo /bin/bash <<SCRIPT
|
|
mkdir -p /etc/docker
|
|
|
|
echo "{}" > /etc/docker/daemon.json
|
|
|
|
if [ -n "${MTU}" ]; then
|
|
jq ".\"mtu\" = ${MTU}" /etc/docker/daemon.json > /tmp/.daemon.json && mv /tmp/.daemon.json /etc/docker/daemon.json
|
|
# See https://docs.docker.com/engine/security/rootless/
|
|
echo "environment=DOCKERD_ROOTLESS_ROOTLESSKIT_MTU=${MTU}" >> /etc/supervisor/conf.d/dockerd.conf
|
|
fi
|
|
|
|
if [ -n "${DOCKER_REGISTRY_MIRROR}" ]; then
|
|
jq ".\"registry-mirrors\"[0] = \"${DOCKER_REGISTRY_MIRROR}\"" /etc/docker/daemon.json > /tmp/.daemon.json && mv /tmp/.daemon.json /etc/docker/daemon.json
|
|
fi
|
|
SCRIPT
|
|
|
|
INFO "Using /etc/docker/daemon.json with the following content"
|
|
|
|
cat /etc/docker/daemon.json
|
|
|
|
INFO "Using /etc/supervisor/conf.d/dockerd.conf with the following content"
|
|
|
|
cat /etc/supervisor/conf.d/dockerd.conf
|
|
|
|
INFO "Starting supervisor"
|
|
sudo /usr/bin/supervisord -n >> /dev/null 2>&1 &
|
|
|
|
INFO "Waiting for processes to be running"
|
|
processes=(dockerd)
|
|
|
|
for process in "${processes[@]}"; do
|
|
wait_for_process "$process"
|
|
if [ $? -ne 0 ]; then
|
|
ERROR "$process is not running after max time"
|
|
ERROR "Dumping /var/log/dockerd.err.log to help investigation"
|
|
cat /var/log/dockerd.err.log
|
|
exit 1
|
|
else
|
|
INFO "$process is running"
|
|
fi
|
|
done
|
|
|
|
if [ -n "${MTU}" ]; then
|
|
ifconfig docker0 mtu ${MTU} up
|
|
fi
|
|
|
|
# Wait processes to be running
|
|
entrypoint.sh
|