docker - 如何将 .env 或 docker-compose.yaml 文件中的变量传递给 nginx 服务器文件
问题描述
我有一个docker-compose.yaml
文件和一个.env
文件。如果我在 env 文件中声明一个变量,我可以在 docker-compose 中访问它。所以,这很好。
但是,我想更改 nginx 的default.conf
属性,即server_name = xxx
从我在 env 中提供的值生成。
所以,我的环境看起来像这样(只分享一部分)
#.env
NGINX_SERVER_NAME=dev.example
在 docker-compose 我在这里提到了这个变量:
nginx:
container_name: ${APP_NAME}-server
environment:
- SERVER_NAME=${NGINX_SERVER_NAME}
在default.conf
我简单地调用变量是这样的:
server_name ${SERVER_NAME};
我期待default.conf
包含server_name dev.example
,但它包含令牌,即${SERVER_NAME}
我怎样才能实现我正在寻找的东西?谢谢
解决方案
这对我来说似乎没问题。尝试在撰写文件中的环境变量周围使用引号。
nginx:
container_name: ${APP_NAME}-server
environment:
- SERVER_NAME="${NGINX_SERVER_NAME}"
或尝试像这样编写您的环境变量。
nginx:
container_name: ${APP_NAME}-server
environment:
SERVER_NAME: "${NGINX_SERVER_NAME}"