在nginx 1.19之后的版本中,nginx的Docker镜像可以读取环境变量的值,具体方式如下:
1、在/etc/nginx/templates/目录下创建一个*.template文件,比如default.conf.template(可以通过挂载的形式,或者直接修改容器保存为新的镜像)
2、在default.conf.template文件中,使用${}将环境变量包含起来,比如:
listen ${NGINX_PORT};
3、启动docker的时候,使用如下的方式为环境变量赋值:
docker run -d --name nginx -e NGINX_PORT=80 nginx:latest
在容器启动前会读取/etc/nginx/templates/*.template模板文件,并将执行envsubst的结果输出到/etc/nginx/conf.d/default.conf,比如上面的配置,最终会输出如下内容到/etc/nginx/conf.d/default.conf文件中:
listen 80;