Merge pull request #1 from appropriate/safeguard

Adjust entrypoint to always warn on missing socket
This commit is contained in:
Thomas LÉVEIL 2015-09-12 16:52:01 +02:00
commit d21c6943a2
2 changed files with 16 additions and 23 deletions

View file

@ -31,4 +31,4 @@ ENV DOCKER_HOST unix:///tmp/docker.sock
VOLUME ["/etc/nginx/certs"] VOLUME ["/etc/nginx/certs"]
ENTRYPOINT ["/app/docker-entrypoint.sh"] ENTRYPOINT ["/app/docker-entrypoint.sh"]
CMD ["nginx-proxy"] CMD ["forego", "start", "-r"]

25
docker-entrypoint.sh Normal file → Executable file
View file

@ -1,29 +1,22 @@
#!/bin/bash #!/bin/bash
set -e set -e
check_unix_socket() { # Warn if the DOCKER_HOST socket does not exist
if [[ $DOCKER_HOST == unix://* ]]; then if [[ $DOCKER_HOST == unix://* ]]; then
socket_file=${DOCKER_HOST#unix://} socket_file=${DOCKER_HOST#unix://}
if ! [ -S $socket_file ]; then if ! [ -S $socket_file ]; then
cat >&2 <<-EOT cat >&2 <<-EOT
ERROR: you need to share your docker host socket with a volume at $socket_file ERROR: you need to share your Docker host socket with a volume at $socket_file
Typically you should run your jwilder/nginx-proxy with: \`-v /var/run/docker.sock:$socket_file:ro\` Typically you should run your jwilder/nginx-proxy with: \`-v /var/run/docker.sock:$socket_file:ro\`
See documentation at http://git.io/vZaGJ See the documentation at http://git.io/vZaGJ
EOT EOT
socketMissing=1
fi
fi
# If the user has run the default command and the socket doesn't exist, fail
if [ "$socketMissing" = 1 -a "$1" = forego -a "$2" = start -a "$3" = '-r' ]; then
exit 1 exit 1
fi fi
fi
}
################################################################################
# check for the expected command
if [ "$1" = 'nginx-proxy' ]; then
check_unix_socket
exec forego start -r
fi
# else default to run whatever the user wanted like "bash"
exec "$@" exec "$@"