如何将环境变量与docker compose一起从其他目录使用
我正在建立一个新的基于docker的服务器,我正在编写一个运行脚本如何将环境变量与docker compose一起从其他目录使用,docker,docker-compose,environment-variables,Docker,Docker Compose,Environment Variables,我正在建立一个新的基于docker的服务器,我正在编写一个运行脚本 $ docker-compose 对于我所有的docker compose.yml文件,一次完成 我知道存在.env文件,我知道docker compose.yml中的env_文件选项,但是启动时会忽略.env文件 $ docker-compose up 来自其他目录,甚至不是env_文件中的完整路径 我的脚本。sh: version: '3' services: service_name: build: /s
$ docker-compose
对于我所有的docker compose.yml
文件,一次完成
我知道存在.env
文件,我知道docker compose.yml
中的env_文件
选项,但是启动时会忽略.env
文件
$ docker-compose up
来自其他目录,甚至不是env_文件中的完整路径
我的脚本。sh:
version: '3'
services:
service_name:
build: /server1/apache
env_file: /server1/.env
volumes:
- /web/${ROOT_DOMAIN}/web/:/var/www/:rw
#/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\u DOMAIN}
变量替换为.env
文件中定义的变量。当我跑步时,这就像一个符咒
$ docker-compose up
从/server1/
文件夹。但是,当我运行位于其他目录中的脚本时,环境变量被忽略,默认为null
如何修复此问题?很抱歉,此问题无法修复。提供的.env
文件必须位于同一目录中
这是docker compose的要求,在文档(第一段)中有描述:您可以自己滚动:
function execute() {
(set -a; source .env; cat $1 | envsubst | kubectl apply -f -)
}
execute foo.yaml
及
符号链接怎么样?
$ cat .env
FOO=123
BAR=abc
$ cat foo.yaml
{
"myfoo": $FOO,
"mybar": $BAR
}