Gitlab-ci 和 docker 撰写:tls 握手超时

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

我在尝试使用 Gitlab 和 docker 设置 CI 时遇到了一些问题:docker-compose 构建失败并出现错误

Building web
Step 1/8 : FROM python:2.7-alpine
Service 'web' failed to build: Get https://registry-1.docker.io/v2/: net/http: TLS handshake timeout
ERROR: Job failed: exit code 1

这是我的 gitlab-runner/config.toml:

concurrent = 1
check_interval = 0

[[runners]]
  name = "Backend-django runner"
  url = "http://gitlab.codewithme.today/ci"
  token = "4976e4153178a33029e041a0f5fe07"
  executor = "docker"
  [runners.docker]
    tls_verify = false
    image = "python:2.7-alpine"
    privileged = true
    disable_cache = false
    volumes = ["/cache"]
    shm_size = 0
  [runners.cache]

我自己的 gitlab 容器注册表可以与 letencrypt 创建的证书配合使用,并且相同的过程可以在同一台服务器上使用 gitlab runner 成功本地完成。

如何克服这个问题?

docker gitlab docker-compose gitlab-ci gitlab-ci-runner
2个回答
1
投票

更改网络接口上的参数

mtu=1300
解决了问题。


0
投票

https://docs.gitlab.com/ee/user/clusters/agent/work_with_agent.html

覆盖已创建网络的MTU 对于某些环境,例如 OpenStack 中的虚拟机,自定义 MTU 是必要的。 Docker 守护进程不尊重 docker.json 中的 MTU(请参阅 moby 问题),因此您可以将 config.toml 中的 network_mtu 设置为任何有效值。这指示 Docker 守护进程为新创建的网络使用正确的 MTU。

[runners.docker]
  network_mtu = 1402
© www.soinside.com 2019 - 2024. All rights reserved.