Docker Compose между файлами и проектами

Compose поддерживает два метода совместного использования общей конфигурации:

  • Расширение всего файла Compose с помощью нескольких файлов Compose
  • Расширение отдельных сервисов с помощью поля extends

Несколько файлов Compose

докер-compose.yml

version: '3.4'

services:
  sqldata:
    image: mcr.microsoft.com/mssql/server:2019-latest 

докер-compose.override.yml

version: '3.4'

services:
  sqldata:
    environment:
      - SA_PASSWORD=Pass@word
      - ACCEPT_EULA=Y
    ports:
      - "5433:1433"
    volumes:
      - eshop-sqldata:/var/opt/mssql

volumes:
  eshop-sqldata:
    external: false

Чтобы проверить переопределение, используйте конвертировать команда ниже —

docker compose convert

Выход

общий-1.PNG

Когда вы запускаете docker compose up, он автоматически считывает переопределения. Теперь было бы неплохо использовать это приложение Compose в производственной среде. Итак, создайте еще один файл переопределения.

докер-compose.prod.yml

version: '3.4'

services:
  sqldata:
    environment:
      - SA_PASSWORD=Pass@word
      - ACCEPT_EULA=Y
    ports:
      - "5433:1433"    # Important: In a production environment you should remove the external port

Чтобы развернуть этот производственный файл Compose, вы можете запустить

docker compose -f docker-compose.yml -f docker-compose.prod.yml up -d

Это развертывает все три службы, используя конфигурацию в docker-compose.yml и docker-compose.prod.yml (но не конфигурацию dev в docker-compose.override.yml).

Расширение услуг

При определении любой службы в docker-compose.yml вы можете объявить, что вы расширяете другую службу следующим образом:

services:
  web:
    extends:
      file: common-services.yml
      service: webapp
services:
  webapp:
    build: .
    ports:
      - "8000:8000"
    volumes:
      - "/data"

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *