nginx-proxy-auto-docker/docker-entrypoint.sh
Mark Edgington 3f33b7deeb Add env vars for custom template and nonstandard ports
The LISTEN_PORT_HTTP and LISTEN_PORT_HTTPS env variables can now be specified
on web-service containers in order to cause the proxy to listen on the
specified ports.  If you only want to allow listening on a port with SSL, these
variables can be set to the value "None" which causes them to not be used.  So,
for example, you could set LISTEN_PORT_HTTP=None in order to only proxy traffic
over a secure link.  If one or both of these env vars are omitted, the default
values of 80 and 443 will be used where omitted.  NOTE: these ports are
internal ports on the container.  If you set LISTEN_PORT_HTTPS=1234, and want
to make this accessible on the WAN at port 5555, then you will do something
like

    docker run -p 5555:1234 ...

Additionally, on the proxy container, a CUSTOM_TEMPLATE env variable can be
specified, which will instruct docker-gen to use the specified template instead
of the default template.  For example, if CUSTOM_TEMPLATE=/app/mytemplate, then
you will want to either copy your template to the container with 'docker cp',
or mount it from the host filesystem with something like

    docker run -v /host/path:/app/mytemplate ...
2016-06-02 20:44:13 -04:00

37 lines
1.1 KiB
Bash
Executable file

#!/bin/bash
set -e
# 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
# 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
# if a custom template has not been specified
if [ -z "$CUSTOM_TEMPLATE" ]; then
# try to copy default config to another file if the other file doesn't yet exist
cp -n nginx.tmpl nginx_default.tmpl
# create symlink to default config file
ln -sf nginx_default.tmpl nginx.tmpl
else
# try to copy default config to another file if the other file doesn't yet exist
cp -n nginx.tmpl nginx_default.tmpl
# create symlink to custom config file
ln -sf $CUSTOM_TEMPLATE nginx.tmpl
fi
exec "$@"