gpt4 book ai didi

docker - Gitlab CI - 使用 Shared Runner 构建 Docker 镜像(无法连接到 Docker 守护程序)

转载 作者:行者123 更新时间:2023-12-01 09:13:32 25 4
gpt4 key购买 nike

我目前正在使用 Gitlab Shared Runners 来构建和部署我的项目(至少我也在尝试!)。

我有下面的 gitlab-ci.yml :

image: java:8-jdk

stages:
- build
- package

before_script:
- export GRADLE_USER_HOME=`pwd`/.gradle
- docker info

cache:
paths:
- .gradle/wrapper
- .gradle/caches
build:
stage: build
script:
- ./gradlew build
artifacts:
paths:
- build/libs/*.jar
expire_in: 1 week
only:
- master

docker-build:
image: docker:stable
services:
- docker:dind
stage: package
script:
docker build -t registry.gitlab.com/my-project .
docker push registry.gitlab.com/my-project

after_script:
- echo "End CI"

首先,构建阶段做得很好,但是当我尝试构建和推送我的 docker 镜像时,第二阶段存在问题。

我得到这个日志:
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

似乎 Gitlab 正在使用无法构建 docker 镜像的共享运行器,但我不知道如何更改它。我无法更改运行者的配置,因为我使用的是共享运行者。我还尝试在我的第二阶段添加一些标签,希望有一个更合适的运行者来照顾我的工作,但我仍然遇到这个错误。

感谢您的帮助。

最佳答案

我相信你需要设置DOCKER_HOST连接到另一个容器中运行的 DinD:

docker-build:
image: docker:stable
services:
- docker:dind
stage: package
script:
- export DOCKER_HOST=tcp://docker:2375/
- docker build -t registry.gitlab.com/my-project .
- docker push registry.gitlab.com/my-project

关于docker - Gitlab CI - 使用 Shared Runner 构建 Docker 镜像(无法连接到 Docker 守护程序),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51616083/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com