Nginx配置使用环境变量
在使用docker-compose建立nginx时,使用环境变量的方法
在使用docker-compose部署nginx时,我们将解释如何在conf文件中使用环境变量的方法。请注意,由于不同于1.19版本之前和之后的nginx版本有所不同,请注意这一点。
使用最新版本的nginx(1.19或更高)
您可以使用官方支持的方法来自1.19版本开始。
以以下docker-compose.yml为例。
1 | version: "3" |
默认情况下,容器会加载/etc/nginx/templates/*.template文件,并将设置了环境变量的结果输出到/etc/nginx/conf.d目录下。
例如,我们准备好了一个名为default.conf.template的文件,并将其配置如下。
1 | server { |
执行”docker-compose up –build”命令后,上述文件将被挂载到容器内的”/etc/nginx/templates”目录中。
在容器的/etc/nginx/conf.d文件夹中可以确认到输出了设置了环境变量的文件。
1 | server { |
在nginx的1.19版本之前
在1.19之前,需要使用envsubst命令自行设置环境变量。
以以下docker-compose.yml为例。与上述方法的不同之处在于在command中执行init.sh。
1 | version: "3" |
把default.conf.template如下所示。此与上述相同。
1 | server { |
把init.sh的内容设置为以下内容。使用envsubst命令将环境变量设置到default.conf.template中,并将结果输出到default.conf。别忘记编写启动nginx的命令。
1 | #!/bin/sh |
执行docker-compose up –build后,您可以在容器内的/etc/nginx/conf.d目录中查看设置了环境变量的文件。
1 | server { |