Task: Add docker entrypoint script
This commit is contained in:
parent
6f23076d64
commit
75e3594abf
@ -0,0 +1,56 @@
|
||||
#!/bin/sh
|
||||
set -eu
|
||||
|
||||
# first arg is `-f` or `--some-option`
|
||||
if [ "${1#-}" != "$1" ]; then
|
||||
set -- docker "$@"
|
||||
fi
|
||||
|
||||
# if our command is a valid Docker subcommand, let's invoke it through Docker instead
|
||||
# (this allows for "docker run docker ps", etc)
|
||||
if docker help "$1" > /dev/null 2>&1; then
|
||||
set -- docker "$@"
|
||||
fi
|
||||
|
||||
_should_tls() {
|
||||
[ -n "${DOCKER_TLS_CERTDIR:-}" ] \
|
||||
&& [ -s "$DOCKER_TLS_CERTDIR/client/ca.pem" ] \
|
||||
&& [ -s "$DOCKER_TLS_CERTDIR/client/cert.pem" ] \
|
||||
&& [ -s "$DOCKER_TLS_CERTDIR/client/key.pem" ]
|
||||
}
|
||||
|
||||
# if we have no DOCKER_HOST but we do have the default Unix socket (standard or rootless), use it explicitly
|
||||
if [ -z "${DOCKER_HOST:-}" ] && [ -S /var/run/docker.sock ]; then
|
||||
export DOCKER_HOST=unix:///var/run/docker.sock
|
||||
elif [ -z "${DOCKER_HOST:-}" ] && XDG_RUNTIME_DIR="${XDG_RUNTIME_DIR:-/run/user/$(id -u)}" && [ -S "$XDG_RUNTIME_DIR/docker.sock" ]; then
|
||||
export DOCKER_HOST="unix://$XDG_RUNTIME_DIR/docker.sock"
|
||||
fi
|
||||
|
||||
# if DOCKER_HOST isn't set (no custom setting, no default socket), let's set it to a sane remote value
|
||||
if [ -z "${DOCKER_HOST:-}" ]; then
|
||||
if _should_tls || [ -n "${DOCKER_TLS_VERIFY:-}" ]; then
|
||||
export DOCKER_HOST='tcp://docker:2376'
|
||||
else
|
||||
export DOCKER_HOST='tcp://docker:2375'
|
||||
fi
|
||||
fi
|
||||
if [ "${DOCKER_HOST#tcp:}" != "$DOCKER_HOST" ] \
|
||||
&& [ -z "${DOCKER_TLS_VERIFY:-}" ] \
|
||||
&& [ -z "${DOCKER_CERT_PATH:-}" ] \
|
||||
&& _should_tls \
|
||||
; then
|
||||
export DOCKER_TLS_VERIFY=1
|
||||
export DOCKER_CERT_PATH="$DOCKER_TLS_CERTDIR/client"
|
||||
fi
|
||||
|
||||
if [ "$1" = 'dockerd' ]; then
|
||||
cat >&2 <<-'EOW'
|
||||
📎 Hey there! It looks like you're trying to run a Docker daemon.
|
||||
You probably should use the "dind" image variant instead, something like:
|
||||
docker run --privileged --name some-docker ... docker:dind ...
|
||||
See https://hub.docker.com/_/docker/ for more documentation and usage examples.
|
||||
EOW
|
||||
sleep 3
|
||||
fi
|
||||
|
||||
exec "$@"
|
Loading…
Reference in New Issue
Block a user