我正在设置一个新的基于 docker 的服务器,我正在编写一个脚本来运行
$ docker-compose
我的所有 docker-compose.yml
文件一次。
我知道 .env
文件的存在,我知道 docker-compose.yml
中的 env_file
选项,但是 .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
.环境
ROOT_DOMAIN=server1.domain.tld
我想用 .env
文件中定义的变量替换卷中的 ${ROOT_DOMAIN}
变量。当我运行时,这就像一个魅力
$ docker-compose up
来自 /server1/
文件夹。但是,当我运行位于其他目录中的脚本时,环境变量将被忽略并默认为 null。
如何解决这个问题?
最佳答案
很抱歉,但这无法修复。提供的 .env
文件必须在同一目录中。
这是 docker compose 的要求,在文档(第一段)中有描述:https://docs.docker.com/compose/env-file/
关于docker - 如何使用来自其他目录的 docker-compose 环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56222897/