Структура файла docker-compose.yml в версии 4.5
В версии 4.5 структура файла docker-compose.yml
отличается от предыдущих версий:
- Объединены контейнеры Postgres и MiniO
- Изменена группировка и возможности переиспользования переменных и других свойств сервисов
Объединение контейнеров 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]