Adjust entrypoint to always warn on missing socket

Also chmod the entrypoint
master
Mike Dillon 7 years ago
parent 1aac996019
commit f95ff82ad0
  1. 2
      Dockerfile
  2. 35
      docker-entrypoint.sh

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

@ -1,29 +1,22 @@
#!/bin/bash
set -e
check_unix_socket() {
if [[ $DOCKER_HOST == unix://* ]]; then
socket_file=${DOCKER_HOST#unix://}
if ! [ -S $socket_file ]; then
cat >&2 <<-EOT
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\`
See documentation at http://git.io/vZaGJ
EOT
exit 1
fi
# Warn if the DOCKER_HOST socket does not exist
if [[ $DOCKER_HOST == unix://* ]]; then
socket_file=${DOCKER_HOST#unix://}
if ! [ -S $socket_file ]; then
cat >&2 <<-EOT
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\`
See the documentation at http://git.io/vZaGJ
EOT
socketMissing=1
fi
}
################################################################################
fi
# check for the expected command
if [ "$1" = 'nginx-proxy' ]; then
check_unix_socket
exec forego start -r
# 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
fi
# else default to run whatever the user wanted like "bash"
exec "$@"