Bläddra i källkod

Adjust entrypoint to always warn on missing socket

Also chmod the entrypoint
Mike Dillon 9 år sedan
förälder
incheckning
f95ff82ad0
2 ändrade filer med 15 tillägg och 22 borttagningar
  1. 1 1
      Dockerfile
  2. 14 21
      docker-entrypoint.sh

+ 1 - 1
Dockerfile

@@ -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"]

+ 14 - 21
docker-entrypoint.sh

@@ -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 "$@"
-
-