Compose 环境变量
多种方式
services:
app:
# 方式一:直接定义
environment:
- NODE_ENV=production
- DB_HOST=db
# 方式二:从文件读取
env_file:
- .env
- .env.production
.env 文件
# .env(Compose 自动读取)
MYSQL_ROOT_PASSWORD=secret
MYSQL_DATABASE=mydb
APP_PORT=3000
# compose.yml 中使用变量
services:
db:
image: mysql
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
app:
ports:
- "${APP_PORT}:3000"
变量优先级
shell 环境变量 > .env 文件 > compose.yml environment
小结
| 方式 | 说明 |
|---|---|
environment: | 直接定义 |
env_file: | 从文件读取 |
${VAR} | 变量替换 |
.env | Compose 自动读取 |