0%

docker使用-docker-compose.yml动态传递变量

docker使用-docker-compose.yml动态传递变量

1. 在 docker-compose.yml 中使用环境变量

首先,在 docker-compose.yml 文件中,将 /Users/c33/app/_static 替换为一个环境变量。例如:

yaml

复制

version: '3'
services:
app:
image: your-image
volumes:
- ${STATIC_PATH}:/app/_static # 宿主机${STATIC_PATH} docker机器/app/_static
environment:
- STATIC_PATH=${STATIC_PATH} # 这里定义了一个环境变量 STATIC_PATH,它的值是从外部(宿主机或 .env 文件)传递进来的 ${STATIC_PATH}。

2. 在 .env 文件中定义环境变量

docker-compose.yml 文件所在的目录中创建一个 .env 文件,并在其中定义 STATIC_PATH 变量:

STATIC_PATH=/Users/c33/app/_static

3. 运行 docker-compose up 时传递环境变量

当你运行 docker-compose up 时,Docker Compose 会自动读取 .env 文件中的环境变量。如果你想在运行时动态传递不同的路径,可以在命令行中覆盖 .env 文件中的值:

STATIC_PATH=/path/to/your/static docker-compose up

# 如果直接使用docker run
docker run \
-e STATIC_PATH=/path/to/your/static \
-v /path/to/your/static:/app/_static \
your-image

4. 使用 docker-compose.override.yml(可选)

如果你有多个环境或配置,可以使用 docker-compose.override.yml 文件来覆盖默认的 docker-compose.yml 配置。例如:

version: '3'
services:
app:
volumes:
- ${STATIC_PATH}:/app/_static

然后在运行 docker-compose up 时传递不同的 STATIC_PATH 值。

总结

通过使用环境变量,你可以轻松地在运行 docker-compose up 时动态传递 /Users/c33/app/_static 这样的路径。这种方法不仅灵活,而且便于管理不同环境下的配置。