能否使用基于Ubuntu而非Alpine的docker:dind?GitLab CI镜像构建问题
解决GitLab CI中docker:dind Alpine系统apt-get找不到的问题
直接使用官方维护的基于Ubuntu的docker:dind镜像即可,镜像标签带有ubuntu后缀,对应不同Ubuntu版本(如22.04、20.04)。
具体配置示例
修改你的.gitlab-ci.yml,将基础镜像和dind服务替换为Ubuntu版本:
stages: - build build-image: stage: build image: docker:24.0.6-ubuntu22.04 services: - name: docker:24.0.6-dind-ubuntu22.04 alias: docker variables: DOCKER_HOST: tcp://docker:2376 DOCKER_TLS_CERTDIR: "/certs" DOCKER_TLS_VERIFY: 1 DOCKER_CERT_PATH: "$DOCKER_TLS_CERTDIR/client" before_script: # 现在可以正常使用apt-get - apt-get update && apt-get install -y --no-install-recommends curl git - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY script: - docker build -t $CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA . - docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA
关键说明
- 镜像标签格式为
docker:<docker版本>-dind-ubuntu<ubuntu版本>,可以根据需要选择对应版本(比如docker:23.0.6-dind-ubuntu20.04) - 执行
apt-get前务必先运行apt-get update,避免源缓存过期导致安装失败 - 保持DOCKER相关变量的配置,确保dind服务能正常通信
内容的提问来源于stack exchange,提问作者brucezepplin
相关产品推荐
相关产品推荐

