问题出现的主要原因是因为dind的容器在自托管Runner中没有正确的配置。在这种情况下,可以尝试将以下配置添加到自托管Runner的Dockerfile中:
FROM docker:stable-dind
RUN mkdir -p /etc/docker/certs.d
# If using a private registry, copy in cert
COPY myCA.crt /etc/docker/certs.d/myCA.crt
然后在Bitbucket pipelines中,确保使用正确的docker映像,并在脚本中设置DOCKER_HOST环境变量,如下所示:
image: docker:stable
pipelines:
default:
- step:
name: build and push
services:
- docker:dind
script:
- export DOCKER_HOST=tcp://docker:2375
- docker build -t my-image .
- docker push my-image
这应该解决在使用dind的自托管Runner时克隆源代码仓库的问题。