Как использовать переменные окружения с docker-compose из другого каталога - PullRequest
0 голосов
/ 20 мая 2019

Я устанавливаю новый сервер на основе докера и пишу скрипт для запуска

$ 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.

Как это исправить?

1 Ответ

2 голосов
/ 20 мая 2019

Извините, но это не может быть исправлено.Предоставленный файл .env должен находиться в том же каталоге.

Это требование создания докера и описано в документации (первый абзац): https://docs.docker.com/compose/env-file/

...