在Docker Compose(Fig项目的后继者)中,定义和使用环境变量的方式如下:
在 docker-compose.yml
文件中为服务设置环境变量:
version: '3'
services:
web:
image: nginx:latest
environment:
- VARIABLE_NAME=value
- ANOTHER_VAR=another_value
上述配置会在启动 web
服务的容器时,将环境变量 VARIABLE_NAME
设置为 value
,ANOTHER_VAR
设置为 another_value
。
你也可以从宿主机环境变量中继承或通过文件来载入环境变量:
version: '3'
services:
web:
image: my_web_app
env_file:
- .env # 读取.env文件中的环境变量
在.env
文件中可以这样定义环境变量:
VARIABLE_FROM_FILE=some_value
另外,在构建镜像时在Dockerfile中设置环境变量:
FROM nginx:latest
ENV ENVIRONMENT_VARIABLE_IN_DOCKERFILE=value
然后在 docker-compose.yml
中使用这个基于Dockerfile构建的镜像,并且可以覆盖这些环境变量:
version: '3'
services:
web:
build: .
environment:
ENVIRONMENT_VARIABLE_IN_DOCKERFILE: override_value # 在这里覆盖Dockerfile中的值
最后,可以通过命令行动态设置环境变量:
docker-compose run --rm -e VAR_ON_COMMAND_LINE=my_value web
以上就是在Docker Compose中处理环境变量的几种常见方法。