Структура файла docker-compose.yml в версии 4.5

В версии 4.5 структура файла docker-compose.yml отличается от предыдущих версий:

Объединение контейнеров Postgres и MiniO

Пользователям внешних БД и MiniO

Если вы используете внешние БД и/или MiniO, данные изменения не затронут обращение к ним. Подробнее читайте в соответствующих разделах настоящего руководства.

В версии 4.5 все базы данных и бакеты перемещены в контейнеры db и minio соответственно. Создание всех необходимых баз при запуске нового контейнера db осуществляется с помощью SQL-скрипта postgres-init.sql, для уже запущенного контейнера db — за счет выполнения миграции при обновлении до версии 4.5. Как следствие:

  • Удаляются секции avatars.minio, authdb, avatars.db, backgrounddb, licensedb и globalsearchdb
  • Все зависимости (depends_on) от authdb, avatars.db, backgrounddb, licensedb и globalsearchdb переходят в зависимость от db
  • Все зависимости (depends_on) от avatars.minio переходят в зависимость от minio.
  • Удаляются все вольюмы для avatars.minio, authdb, avatars.db, backgrounddb, licensedb и globalsearchdb
  • В .env-файле для всех строк подключения к базам данных *_CONNECTION_STRING значение Host становится равно db.

Группировка и переиспользование переменных и других свойств сервисов

В версии 4.5 для переменных и других свойств в docker-compose.yml реализовано их объявление по отдельности и переиспользование для всех сервисов, которым это необходимо.
Например, общие для многих сервисов переменные объявляются в блоке:

x-tms-vars: &tms-vars
  ASPNETCORE_ENVIRONMENT: "${ASPNETCORE_ENVIRONMENT:-Production}"
  APPLICATION__CONFIGURATION__CUSTOMFILEPATH: "${APP_CONFIG_FILEPATH:-}"
  DOTNET_ENVIRONMENT: "${ASPNETCORE_ENVIRONMENT:-Production}" 
  INSECURE_REMOTES: "${INSECURE_REMOTES:-}"
  Serilog__System__MinimumLevel: "${API_LOG_LEVEL}"
  SYSTEM_NAME: "${SYSTEM_NAME:-testit}"
  TMS_BUCKET_NAME: "${TMS_BUCKET_NAME}"
  USE_PKCE: "${USE_PKCE}"
  AWS_CREATE_BUCKET_IF_REQUIRED: "${AWS_CREATE_BUCKET_IF_REQUIRED:-true}"

Также переменные переиспользуются в сервисах следующим образом:

ldapwebapi:
    image: "${TMS_DOCKER_REGISTRY}/ldapwebapi:${TMS_CONTAINER_VERSION}"
    <<: [*tms-service-defaults, *tms-ca-certs-volume]
    environment:
      <<: [*tms-vars]
Обновлено: