docker-compose 运行问题 2024:错误:“ContainerConfig”

问题描述 投票:0回答:1

我遇到了一个看起来非常奇怪的问题,我希望以前有人遇到过。

我有一个 docker-compose 文件,其中包含 redis 服务。没什么特别的,我只是从 docker hub 获取最新的 redis。我今天重新部署,通常运行

--force-recreate
来向下/向上容器,但是当我今天尝试运行
--force-recreate
时,我遇到了以前从未见过的奇怪错误(昨天效果很好)。

奇怪的是,运行正常的向下/向上命令可以正常工作,没有任何问题。我是不是错过了什么?

以下是可以无错误地关闭/启动我的系统的命令:

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

这是应该没问题的命令,但它因 redis' docker-compose 的 'ContainerConfig' 错误而失败:

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

输出...

docker-compose -f docker-compose.prod.yml up -d --force-recreate
Recreating app_redis_1 ...

ERROR: for app_redis_1  'ContainerConfig'

Traceback (most recent call last):
  File "docker-compose", line 3, in <module>
  File "compose/cli/main.py", line 81, in main
  File "compose/cli/main.py", line 203, in perform_command
  File "compose/metrics/decorator.py", line 18, in wrapper
  File "compose/cli/main.py", line 1186, in up
  File "compose/cli/main.py", line 1182, in up
  File "compose/project.py", line 702, in up
  File "compose/parallel.py", line 108, in parallel_execute
  File "compose/parallel.py", line 206, in producer
  File "compose/project.py", line 688, in do
  File "compose/service.py", line 581, in execute_convergence_plan
  File "compose/service.py", line 503, in _execute_convergence_recreate
  File "compose/parallel.py", line 108, in parallel_execute
  File "compose/parallel.py", line 206, in producer
  File "compose/service.py", line 496, in recreate
  File "compose/service.py", line 615, in recreate_container
  File "compose/service.py", line 334, in create_container
  File "compose/service.py", line 922, in _get_container_create_options
  File "compose/service.py", line 962, in _build_container_volume_options
  File "compose/service.py", line 1549, in merge_volume_bindings
  File "compose/service.py", line 1579, in get_container_data_volumes
KeyError: 'ContainerConfig'
[88001] Failed to execute script docker-compose

这是 redis 服务的简单

docker-compose
配置:

version: '3.8'

services:

  redis:
    image: redis:latest
    restart: always
    ports:
      - "6379"
docker docker-compose redis
1个回答
0
投票

正如这里无数帖子中所指出的,以及 @ChrisBecke 的评论中所指出的,这是 Docker 中命令贬值的原因。现在是 2024 年,事情已经更新了。

无论出于何种原因,在系统更新后,带有

--force-recreate
docker-compose
现在在我的生产系统上失败,而
docker compose up -d --force-recreate
按预期工作。 (注意删除
-

奇怪的是,我在 DigitalOcean 上托管,并在前几天通过

apt-get...
运行了更新,并且我确实注意到 docker 正在更新......但是这个错误不容易找出原因,这就是我在这里问的原因。它也没有影响我的暂存环境,所以不确定原始命令不起作用的原因是什么......

© www.soinside.com 2019 - 2024. All rights reserved.