docker - 如何使用来自其他目录的 docker-compose 环境变量
问题描述
我正在设置一个新的基于 docker 的服务器,我正在编写一个脚本来运行
$ docker-compose
一次处理我所有的docker-compose.yml
文件。
我知道.env
文件的存在并且我知道 中的env_file
选项docker-compose.yml
,但是.env
当我启动时这些文件被忽略了
$ docker-compose up
从其他目录,甚至没有env_file
帮助中的完整路径。
my_script.sh:
#!/bin/bash
docker-compose up -f /server1/docker-compose.yml -f /server2/docker-compose.yml -f /server3/docker-compose.yml
Docker-compose.yml:
version: '3'
services:
service_name:
build: /server1/apache
env_file: /server1/.env
volumes:
- /web/${ROOT_DOMAIN}/web/:/var/www/:rw
.env
ROOT_DOMAIN=server1.domain.tld
我想用文件${ROOT_DOMAIN}
中定义的变量替换卷中的变量.env
。当我跑步时,这就像一个魅力
$ docker-compose up
从/server1/
文件夹。但是,当我运行位于其他目录中的脚本时,环境变量将被忽略并默认为 null。
如何解决这个问题?
解决方案
很抱歉,但这无法解决。提供的.env
文件必须在同一目录中。
这是 docker compose 的要求,并在文档(第一段)中进行了描述:https ://docs.docker.com/compose/env-file/
推荐阅读
- django - 如何像这样获取 API 数据。道具?
- c# - C#如何在位图中保留1个颜色范围?
- react-native - Expo React Native - 使用相同的代码库部署多个应用程序
- r - 有没有办法在 R 的固定效应模型中同时包含 PCSE 和 Prais-Winsten 校正(类似于 Stata 中的 xtpcse 函数)?
- python-3.x - 使用数据框值作为列表的索引
- python - 将包含数千列的数据帧写入 HDFS 需要大量时间
- c# - 如何根据通用属性过滤列表
- assembly - 如何同时在两个不同的 DOSBoxes 上播放声音?
- vba - 附加文件夹中的所有 CSV 文件
- c# - 从 Worksheet 获取时,日期转换为双精度