Docker-compose: замена ключевого слова extends - PullRequest
0 голосов
/ 02 ноября 2019

Из докера Документы :

Ключевое слово Docker Compose расширяет , позволяя совместно использовать общие конфигурации между различными файлами или даже разными проектами целиком. Расширение сервисов полезно, если у вас есть несколько сервисов, которые повторно используют общий набор параметров конфигурации. Используя extends, вы можете определить общий набор параметров сервиса в одном месте и ссылаться на него из любого места.

По какой-то причине эта функция была удалена в версии 3 .

Нашел также эту ветку , но она неактивна в течение 2 лет.

Я пытаюсь найти замену этой функции в более новых версиях.

Хотелось бы услышать, если кто-нибудь найдет замену для extends.

Спасибо.

1 Ответ

2 голосов
/ 02 ноября 2019

Есть 2 способа достичь того, что вам нужно, вы можете решить использовать один из них или оба одновременно, поскольку они работают немного по-разному:

Несколько составных файлов

Вы можетеукажите несколько файлов компоновки при запуске команды компоновки Docker, например, вы можете настроить свой проект с помощью:

docker-compose -f config1.yml -f config2.yml up

Вы также можете использовать переменную окружения для указания ваших файлов:

COMPOSE_FILE=config1.yml:config2.yml docker-compose up

Что происходит, так это то, что docker compose создает единую конфигурацию, объединяющую то, что вы определили в каждом из них.
Здесь документация, показывающая , как объединить несколько файлов составления .

Вы также можете сгенерироватьваш окончательный файл конфигурации, в котором выполняется команда config .

Якоря YAML

Поскольку файлы docker compose являются в основном файлами YAML, вы можете использовать Якоря YAML для определенияблок свойств и повторно использовать их в нескольких частях вашей конфигурации.

Например:

version: '3'

common: &common
  image: "myrepo/myimage"
  restart: "unless-stopped"
  volumes:
    - "volume:/mnt/myvolume"

services:
  service1:
    <<: *common
    ports:
      - "5000:5000"

  service2:
    <<: *common
    environment:
      - MYENV: value
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...