После обновления пакета docker-engine в репозиториях p10 и ниже до версии 27.1.1-alt1.x86_64 поломалась работа docker-compose. Шаги воспроизведения: 1) Установить: apt-get install docker-engine docker-compose 2) Создать docker-compose.yaml в текущем каталоге: version: "3" services: hello_world: image: hello-world environment: ENV1: "val1" 3) Запустить в текущем каталоге: docker-compose up -d 4) Сделать изменения в docker-compose.yaml: version: "3" services: hello_world: image: hello-world environment: ENV1: "val2" (здесь поменялось только значение) 4) Запустить снова docker-compose up -d Ожидаемый результат: Контейнер удачно пересоздаётся Полученный результат: docker-compose up -d Recreating root_hello_world_1 ... ERROR: for root_hello_world_1 'ContainerConfig' ERROR: for hello_world 'ContainerConfig' Traceback (most recent call last): File "/usr/bin/docker-compose", line 11, in <module> load_entry_point('docker-compose==1.27.4', 'console_scripts', 'docker-compose')() File "/usr/lib/python3/site-packages/compose/cli/main.py", line 67, in main command() File "/usr/lib/python3/site-packages/compose/cli/main.py", line 126, in perform_command handler(command, command_options) File "/usr/lib/python3/site-packages/compose/cli/main.py", line 1070, in up to_attach = up(False) File "/usr/lib/python3/site-packages/compose/cli/main.py", line 1066, in up cli=native_builder, File "/usr/lib/python3/site-packages/compose/project.py", line 648, in up get_deps, File "/usr/lib/python3/site-packages/compose/parallel.py", line 108, in parallel_execute raise error_to_reraise File "/usr/lib/python3/site-packages/compose/parallel.py", line 206, in producer result = func(obj) File "/usr/lib/python3/site-packages/compose/project.py", line 634, in do override_options=override_options, File "/usr/lib/python3/site-packages/compose/service.py", line 579, in execute_convergence_plan renew_anonymous_volumes, File "/usr/lib/python3/site-packages/compose/service.py", line 501, in _execute_convergence_recreate "Recreating", File "/usr/lib/python3/site-packages/compose/parallel.py", line 108, in parallel_execute raise error_to_reraise File "/usr/lib/python3/site-packages/compose/parallel.py", line 206, in producer result = func(obj) File "/usr/lib/python3/site-packages/compose/service.py", line 494, in recreate start_new_container=start, renew_anonymous_volumes=renew_anonymous_volumes File "/usr/lib/python3/site-packages/compose/service.py", line 613, in recreate_container quiet=True, File "/usr/lib/python3/site-packages/compose/service.py", line 332, in create_container previous_container=previous_container, File "/usr/lib/python3/site-packages/compose/service.py", line 917, in _get_container_create_options previous_container, container_options, override_options File "/usr/lib/python3/site-packages/compose/service.py", line 957, in _build_container_volume_options container_mounts File "/usr/lib/python3/site-packages/compose/service.py", line 1532, in merge_volume_bindings previous_container, volumes, tmpfs, mounts File "/usr/lib/python3/site-packages/compose/service.py", line 1562, in get_container_data_volumes container.image_config['ContainerConfig'].get('Volumes') or {} KeyError: 'ContainerConfig' Поле ContainerConfig отсутвует в docker inspect, в этой строчке д.б. Config: container.image_config['ContainerConfig'].get('Volumes') or {} Проверенное исправление (для c9f2) в таске #359460.
Docker compose уже давно не поддерживается. Нужно использовать docker-compose-v2. Пакет docker-compose предлагаю выкинуть из репозитория. Можно сделать obsolete, чтобы у тех, у кого установлен docker-compose, прилетел docker-compose-v2.
(In reply to Владимир Диденко from comment #1) > Docker compose уже давно не поддерживается. Нужно использовать > docker-compose-v2. Пакет docker-compose предлагаю выкинуть из репозитория. Хорошая идея. > Можно сделать obsolete, чтобы у тех, у кого установлен docker-compose, > прилетел docker-compose-v2. Обсудили с выпускающими поддерживаемых бранчей. Да, стоит так сделать.
Сделал две таски https://git.altlinux.org/tasks/359776 - для p11 https://git.altlinux.org/tasks/359773 - для p10 Сначала должно пройти задание для p11, потом p10, чтобы не получить docker-compose-v2 в p10 новее, чем в p11.
Задание дошло до p10 (в p11 и сизифе тоже пофикшено). Закрываю.