diff --git a/nginx/content.md b/nginx/content.md index 26125490f..454685ba4 100644 --- a/nginx/content.md +++ b/nginx/content.md @@ -63,3 +63,26 @@ Then, build with `docker build -t some-custom-nginx .` and run: ```console $ docker run --name some-nginx -d some-custom-nginx ``` + +### using environment variables in nginx configuration + +Out-of-the-box, Nginx doesn't support using environment variables inside most configuration blocks. But `envsubst` may be used as a workaround if you need to generate your nginx configuration dynamically before nginx starts. + +Here is an example using docker-compose.yml: + +```web: + image: nginx + volumes: + - ./mysite.template:/etc/nginx/conf.d/mysite.template + ports: + - "8080:80" + environment: + - NGINX_HOST=foobar.com + - NGINX_PORT=80 + command: /bin/bash -c "envsubst < /etc/nginx/conf.d/mysite.template > /etc/nginx/conf.d/default.conf && nginx -g 'daemon off;'" +``` + +The `mysite.template` file may then contain variable references like this : + +`listen ${NGINX_PORT}; +`