GitLab CI/CD docker_test阶段报错TypeError: kwargs_from_env()参数异常求助
GitLab CI/CD docker_test阶段报错解决方案
针对你遇到的TypeError: kwargs_from_env() got an unexpected keyword argument 'ssl_version'报错,除了降级docker-py到6.3.1,还有以下几种可行方案:
1. 使用固定版本的Docker镜像替换stable标签
docker:stable是滚动更新镜像,近期更新后内置的docker-py可能升级到了7.0.0版本。改用指定版本的镜像可以锁定依赖版本,避免突发兼容问题:
docker_test: image: docker:24.0.6 services: - docker:24.0.6-dind stage: docker-test
选择与你之前正常运行时匹配的Docker镜像版本即可,比如24.0.6这类稳定版本。
2. 在CI流水线中手动降级docker-py
如果坚持使用docker:stable镜像,可以在流水线前置步骤中手动降级docker-py到兼容版本:
docker_test: image: docker:stable services: - docker:stable-dind stage: docker-test before_script: - apk add --no-cache py3-pip - pip install docker==6.3.1
docker:stable基于Alpine系统,先用apk安装pip,再通过pip覆盖安装指定版本的docker-py。
3. 修改代码中kwargs_from_env()的调用逻辑
如果报错来自你自己编写的脚本,检查是否显式传递了ssl_version参数给kwargs_from_env()。docker-py 7.0.0已移除该参数,需调整调用方式:
- 移除
ssl_version参数,让函数自动从环境变量读取TLS配置 - 若需指定TLS版本,改用
tls_version参数(需确认你的docker-py版本支持)
内容的提问来源于stack exchange,提问作者Al Schack
相关产品推荐
相关产品推荐

