【发布时间】:2019-10-06 22:33:03
【问题描述】:
我正在设置一个新的基于 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
.env
ROOT_DOMAIN=server1.domain.tld
我想将卷中的${ROOT_DOMAIN} 变量替换为.env 文件中定义的变量。当我跑步时,这就像一个魅力
$ docker-compose up
来自/server1/ 文件夹。但是,当我运行位于其他目录中的脚本时,环境变量将被忽略并默认为 null。
如何解决这个问题?
【问题讨论】:
标签: docker docker-compose environment-variables