76 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			76 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
| #!/bin/bash
 | |
| source logger.sh
 | |
| source graceful-stop.sh
 | |
| trap graceful_stop TERM
 | |
| 
 | |
| sudo /bin/bash <<SCRIPT
 | |
| mkdir -p /etc/docker
 | |
| 
 | |
| if [ ! -f /etc/docker/daemon.json ]; then
 | |
|   echo "{}" > /etc/docker/daemon.json
 | |
| fi
 | |
| 
 | |
| 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/
 | |
| export DOCKERD_ROOTLESS_ROOTLESSKIT_MTU=${MTU}
 | |
| fi
 | |
| 
 | |
| if [ -n "${DOCKER_DEFAULT_ADDRESS_POOL_BASE}" ] && [ -n "${DOCKER_DEFAULT_ADDRESS_POOL_SIZE}" ]; then
 | |
|   jq ".\"default-address-pools\" = [{\"base\": \"${DOCKER_DEFAULT_ADDRESS_POOL_BASE}\", \"size\": ${DOCKER_DEFAULT_ADDRESS_POOL_SIZE}}]" /etc/docker/daemon.json > /tmp/.daemon.json && mv /tmp/.daemon.json /etc/docker/daemon.json
 | |
| 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
 | |
| 
 | |
| if [ -n "${DOCKER_INSECURE_REGISTRY}" ]; then
 | |
| jq ".\"insecure-registries\"[0] = \"${DOCKER_INSECURE_REGISTRY}\"" /etc/docker/daemon.json > /tmp/.daemon.json && mv /tmp/.daemon.json /etc/docker/daemon.json
 | |
| fi
 | |
| SCRIPT
 | |
| 
 | |
| dumb-init bash <<'SCRIPT' &
 | |
| source logger.sh
 | |
| source wait.sh
 | |
| 
 | |
| dump() {
 | |
|   local path=${1:?missing required <path> argument}
 | |
|   shift
 | |
|   printf -- "%s\n---\n" "${*//\{path\}/"$path"}" 1>&2
 | |
|   cat "$path" 1>&2
 | |
|   printf -- '---\n' 1>&2
 | |
| }
 | |
| 
 | |
| for config in /etc/docker/daemon.json; do
 | |
|   dump "$config" 'Using {path} with the following content:'
 | |
| done
 | |
| 
 | |
| log.debug 'Starting Docker daemon'
 | |
| sudo /usr/bin/dockerd &
 | |
| 
 | |
| log.debug 'Waiting for processes to be running...'
 | |
| processes=(dockerd)
 | |
| 
 | |
| for process in "${processes[@]}"; do
 | |
|     if ! wait_for_process "$process"; then
 | |
|         log.error "$process is not running after max time"
 | |
|         exit 1
 | |
|     else
 | |
|         log.debug "$process is running"
 | |
|     fi
 | |
| done
 | |
| 
 | |
| if [ -n "${MTU}" ]; then
 | |
|   sudo ifconfig docker0 mtu "${MTU}" up
 | |
| fi
 | |
| 
 | |
| startup.sh
 | |
| SCRIPT
 | |
| 
 | |
| RUNNER_INIT_PID=$!
 | |
| log.notice "Runner init started with pid $RUNNER_INIT_PID"
 | |
| wait $RUNNER_INIT_PID
 | |
| log.notice "Runner init exited. Exiting this process with code 0 so that the container and the pod is GC'ed Kubernetes soon."
 | |
| 
 | |
| trap - TERM
 |