Public | Automated Build

Last pushed: 2 years ago
Short Description
Short description is empty for this repo.
Full Description


This container allows you to use the environment variables set by a
Docker link inside of your nginx configuration.


Mount your configuration to /etc/nginx/sites-templates, preferably
read-only. To capture logs, mount a writable directory to

Both HTTP (80) and HTTPS (443) ports are exposed.

For example:

docker run \
  --publish 8080:80 \
  --publish 8443:443 \
  --volume /tmp/nginx-config:/etc/nginx/sites-templates:ro \
  --volume /tmp/nginx-logs:/var/log/nginx \
  --link my-rails-app:rails \

Example nginx config

This is just an example of how to use the templating with a linked
container named rails, and should not be treated as an nginx
configuration guide!

# mount this as /etc/nginx/sites-templates/cool-app.conf.tmpl
# will be available as /etc/nginx/sites-enabled/cool-app.conf

server {
  listen       80;

  location / {
    if (!-f $request_filename) {
      proxy_pass   http://${RAILS_PORT_3000_TCP_ADDR}:${RAILS_PORT_3000_TCP_PORT};

Further information

Environment variables

Docker links are communicated via environment variables, but nginx
does not easily allow environment variables in configuration files.

To work around this, configuration files mounted at
/etc/nginx/sites-templates will be copied to
/etc/nginx/sites-enabled. Any file that ends with .tmpl will have
variable references like ${FOO} replaced with the corresponding
environment variable and have the .tmpl suffix removed.

Only include .conf files

The default nginx configuration includes all files in sites-enabled,
which makes it difficult to have supplemental files like SSL keys in
the same directory. This container will only load files that end in

Docker Pull Command
Source Repository

Comments (0)