获取 docker-compose TypeError: kwargs_from_env() 在 GitLab 中得到意外的关键字参数 'ssl_version'

Al *_*ack 20 gitlab docker docker-compose cicd

我正在使用 GitLab CICD,处于定义的 docker-test 阶段 docker_test: image: docker:stable services: - docker:stable-dind stage: docker-test ......

昨天工作正常,但今天 - GitLab 管道 'docker_test' 失败并显示: TypeError: kwargs_from_env() got an Unexpected keywords argument 'ssl_version'

我在互联网上发现它可能升级到 7.0.0 https://docker-py.readthedocs.io/en/stable/change-log.html

这里有人建议(对于不同的设置)降级到以前的 6.3.1

搜索后 - 不知道该怎么做。也许还有其他解决方案?

Nis*_*ant 36

总结docker-py的讨论:

\n

Docker 1在 v7.0.0 中进行了更改,破坏了用 Python 编写的 Docker Compose v1(pip install docker-compose可用docker-compose)。它已被弃用并被用 Go 实现的 Docker Compose v2 取代,它以 OOB 作为docker compose(子命令)。

\n

永久修复:切换到 Docker Compose v2(无需额外安装,阅读迁移文档以修复兼容性问题)。

\n

临时修复:将 Docker 1使用降级到pip install docker==6.1.3可与 Docker Compose (v1) 配合使用的版本。

\n

1: Docker 的 python 包装器: docker-py; 不是docker用 Go 编写的真正的可执行文件。

\n

注意:有一个提供向后兼容性 \xe2\x80\x94 的请求,不确定是否会被接受。

\n

图片来源:Tim Panohos对问题链接的回答。

\n


小智 4

在 Git 上找到这篇文章:https://github.com/docker/docker-py/issues/3194#issuecomment-1848950456

我通过恢复 utils.py 中的建议更改来使其工作,即 sudo nano ./usr/local/lib/python3.9/dist-packages/docker/utils/utils.py

查找:def kwargs_from_env(environment=None):(参见文件 docker/utils/utils.py 第 344 行)

并添加: def kwargs_from_env(environment=None, ssl_version=None)

然而,我认为它的贬值是有原因的,可能是由于加密的发展 - 所以我会尝试让你的项目运行然后恢复回来......?