Найти в Дзене

docker и docker-compose

Довольно давно существует очень удобная штука: docker-compose. Позволяет буквально в одном файле описать сразу несколько контейнеров, сетей и томов. По сути упаковать целое приложение со всеми сервисами и быстро и легко запустить. С некоторых пор есть плагин для docker, который позволяет вместо docker-compose использовать просто docker (команда compose). Плагин и оригинальная утилита развиваются параллельно и умудряются вносить путаницу. В Ubuntu 24.04+ пакет docker-compose виртуальный и предоставляется пакетом docker-compose-v2, который так же содержит плагин для docker. И вот тут начинается моя боль. Есть у меня вот такой фрагмент в docker-compose.yml: env_file: - path: config.env required: true - path: override.env required: false В Ubuntu 24.04 "docker compose" переваривает этот фрагмент нормально, а вот "docker-compose" радует меня ошибкой: ERROR: The Compose file './docker-compose.yml' is invalid because: services.bot.env_file contains {"path": "config.env", "required": true

docker и docker-compose

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

С некоторых пор есть плагин для docker, который позволяет вместо docker-compose использовать просто docker (команда compose). Плагин и оригинальная утилита развиваются параллельно и умудряются вносить путаницу.

В Ubuntu 24.04+ пакет docker-compose виртуальный и предоставляется пакетом docker-compose-v2, который так же содержит плагин для docker. И вот тут начинается моя боль. Есть у меня вот такой фрагмент в docker-compose.yml:

env_file:

- path: config.env

required: true

- path: override.env

required: false

В Ubuntu 24.04 "docker compose" переваривает этот фрагмент нормально, а вот "docker-compose" радует меня ошибкой:

ERROR: The Compose file './docker-compose.yml' is invalid because:

services.bot.env_file contains {"path": "config.env", "required": true}, which is an invalid type, it should be a string

Ну а чтобы мне было не скучно в Debian 13 пакет docker-compose не виртуальный, а вполне себе нормальный и так же предоставляет плагин для docker. И при этом и утилита и плагин работают одинаково.

Потратил несколько часов чтобы понять почему на машине с Debian работает, а с Ubuntu - нет.