Как указать, какой env_file используется в docker -compose через командную строку - PullRequest
0 голосов
/ 24 января 2020

Я пытаюсь настроить файл docker-compose в общем виде c, чтобы я мог создать несколько сегментов базы данных на одном или нескольких серверах.

Параметры, которые будут меняться между контейнеры:

  1. имя_контейнера
  2. тома
  3. env_file
  4. порты
  5. доступный

Поэтому я хочу файл generi c docker-compose.yml, подобный приведенному ниже, за исключением того, что я не знаю, как я могу установить директиву env_file через командную строку, что-то вроде

docker-compose up --build --env-file="path/to/shard1.env"
docker-compose up --build --env-file="path/to/shard2.env"

Это возможно, или я поступаю неправильно?

version: "3"
services:
  shard:
    build: 
        context: ./database
    container_name: "${SHARD_NAME}"
    restart: on-failure
    volumes:
        - "${SHARD_DIRECTORY}:/database"
    env_file: 
      - "${ENV_FILE}"
    ports:
      - "${PORT}:8000"
    expose:
      - "${PORT}"
    networks:
      - my_network
networks:
  my_network:

1 Ответ

1 голос
/ 24 января 2020

Из моего терминала:

docker-compose --help
[...]
Options:
[...]
  --env-file PATH             Specify an alternate environment file

Успешно протестировано (передача имени изображения в файл композиции ...)

docker-compose --env-file .env-alt up -d
docker-compose --env-file .env-alt down

Неправильно в вашем вопросе команда:

  • Знак равенства между значением и параметром => его необходимо удалить
  • Позиция параметра => это глобальный параметр, который должен появляться перед командой
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...