在使用Docker Compose时,管理和设置环境变量是一个常见的需求,尤其是在不同的开发、测试和生产环境中。Docker Compose允许你以多种方式设置和使用环境变量。以下是一些常用的方法来设置运行时变量:
.env
文件Docker Compose 默认会读取项目根目录下的 .env
文件中的环境变量。你可以在这个文件中定义变量,然后在 docker-compose.yml
文件中引用这些变量。
.env 文件示例:
DATABASE_USER=user
DATABASE_PASSWORD=password
docker-compose.yml 文件示例:
version: '3.8'
services:
db:
image: postgres
environment:
POSTGRES_USER: ${DATABASE_USER}
POSTGRES_PASSWORD: ${DATABASE_PASSWORD}
你可以在运行 docker-compose
命令时直接在命令行中设置环境变量。这些变量将覆盖 .env
文件中的同名变量。
DATABASE_USER=user DATABASE_PASSWORD=password docker-compose up
environment
关键字在 docker-compose.yml
中直接设置你可以在 docker-compose.yml
文件中的 environment
部分直接设置环境变量。这些变量将直接传递给容器。
version: '3.8'
services:
app:
image: myapp
environment:
- DEBUG_MODE=true
- API_KEY=123456
env_file
指令如果你有多个环境变量或者不同的服务需要不同的环境变量文件,你可以使用 env_file
指令指定一个或多个环境变量文件。
yaml复制version: '3.8'
services:
app:
image: myapp
env_file:
- ./config/env.common
- ./config/env.production
你也可以在运行 docker-compose
命令时指定一个环境变量文件,使用 --env-file
选项。
docker-compose --env-file ./config/custom.env up
选择哪种方法取决于你的具体需求:
.env
文件或 env_file
指令可能更合适。docker-compose.yml
文件中设置环境变量可以提供最直接的配置方式,但这可能会降低配置的灵活性和可移植性。领取专属 10元无门槛券
手把手带您无忧上云