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

wbgh16ku  于 12个月前  发布在  Docker
关注(0)|答案(4)|浏览(610)

我正在使用GitLab CICD,在docker-test阶段定义为docker_test: image: docker:stable services: - docker:stable-dind stage: docker-test.
昨天工作正常,但今天- GitLab管道'docker_test'失败:TypeError:kwargs_from_env()获得了意外的关键字参数'ssl_version'
我在互联网上发现,这可能是一个升级到7.0.0 https://docker-py.readthedocs.io/en/stable/change-log.html
这里有人建议(对于不同的设置)降级到prev 6.3.1
搜索后-不知道如何做到这一点。也许有其他的解决方案?

vddsk6oq

vddsk6oq1#

总结docker-py的讨论:
Docker 1在v7.0.0中做了一个change,它破坏了用Python编写的Docker Compose v1(pip install docker-compose可作为docker-compose使用)。它已被弃用,并被Go中实现的Docker Compose v2取代,后者在OOB中作为docker compose(子命令)。
永久修复:切换到Docker Compose v2(无需额外安装,阅读migration docs以修复兼容性问题)。
临时修复:使用pip install docker==6.1.3将Docker 1降级到与Docker Compose(v1)一起使用的版本。
1:Docker的python Package 器:docker-py;不是用Go编写的真实的docker可执行文件。
注意:有一个提供向后兼容性的请求-不确定是否会被接受。
图片来源:Tim Panohos的answer

5q4ezhmt

5q4ezhmt2#

在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)
然而,我认为有一个原因,为什么它的贬值,可能是由于encrytions已经演变-所以我会尝试让你的项目运行,然后恢复回来.?

vd2z7a6w

vd2z7a6w3#

谢谢大家的好主意。这是我们解决问题的方法:
由于我们不想降级到6.1.3,我们将docker-compose替换为docker compose cmd,但由于没有支持的参数'-f file. yml',因此无法构建。
很明显,在GitLab CI/CD中,我们使用的是镜像“docker:latest”,它似乎是3年前构建的,它支持docker客户端18.smth
最后,我们将图像切换到image: docker:20.10.24 services: - docker:20.10.24-dind,我们将其理解为真实的最新稳定版本。
清理了一些以前的兼容性黑客,它工作得很好。

szqfcxe2

szqfcxe24#

我在升级到Ubuntu 20.04并从python2.7切换到python3.8后得到了这个错误。

sudo pip install --upgrade docker-py

字符串

相关问题