浏览代码

conform to Docker official images best practices

https://github.com/docker-library/official-images/blob/master/README.md#consistency
Thomas LEVEIL 9 年之前
父节点
当前提交
1aac996019
共有 2 个文件被更改,包括 24 次插入10 次删除
  1. 1 0
      Dockerfile
  2. 23 10
      docker-entrypoint.sh

+ 1 - 0
Dockerfile

@@ -31,3 +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"]

+ 23 - 10
docker-entrypoint.sh

@@ -1,16 +1,29 @@
 #!/bin/bash
 #!/bin/bash
 set -e
 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
+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
 	fi
 	fi
+}
+
+################################################################################
+
+# check for the expected command
+if [ "$1" = 'nginx-proxy' ]; then
+	check_unix_socket
+	exec forego start -r
 fi
 fi
 
 
-exec forego start -r
+# else default to run whatever the user wanted like "bash"
+exec "$@"
+
+