Преглед изворни кода

refuse to start if the docker sock isn't available

Thomas LEVEIL пре 9 година
родитељ
комит
d83ba3da1e
2 измењених фајлова са 17 додато и 1 уклоњено
  1. 1 1
      Dockerfile
  2. 16 0
      docker-entrypoint.sh

+ 1 - 1
Dockerfile

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

+ 16 - 0
docker-entrypoint.sh

@@ -0,0 +1,16 @@
+#!/bin/bash
+set -e
+
+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
+fi
+
+exec forego start -r