跳到主要内容

环境变量替换

· 阅读需 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