环境变量替换
· 阅读需 1 分钟
可以在 Dockerfile、docker-compose.yml
中使用环境变量
替换${}
。它允许你在构建镜像时动态地设置变量的值。
${}
语法
基本形式: ${VAR}
environment:
- APP_PORT=${APP_PORT}
默认值: ${VAR:-default}
HOST_PORT 未设置时,采用默认值 8080
ports:
- "${HOST_PORT:-8080}:80"
强制: ${VAR:?error}
DATA_PATH 如果未设置,会报错并退出。
volumes:
- "${DATA_PATH:?DATA_PATH must be set}:/data"
组合: ${VAR:-${DEFAULT_VALUE}}
environment:
- DB_HOST=${DB_HOST:-${FALLBACK_DB_HOST}}
环境变量设置
1. Shell 环境变量
export APP_PORT=8080
2. .env 文件
docker-compose
会自动加载项目根目录下的 .env
文件。
可以通过 --env-file
指定 .env
文件。 例如:
docker compose --env-file custom.env up -d
3. 命令行通过 -e
--env
参数指定
Dockerfile
docker -e APP_PORT=8080 run myapp
docker-Compose.yml
docker compose up -d --env APP_PORT=8080