作者:把默认珀尔_430_394 | 来源:互联网 | 2022-12-09 09:36
我目前正在使用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映像的共享运行器,但我不知道如何更改它。我无法更改运行程序的配置,因为我正在使用共享运行程序。我还尝试在第二阶段添加一些标签,希望有一个更合适的跑步者来照顾我的工作,但是我仍然遇到这个错误。
谢谢您的帮助。
1> BMitch..:
我相信您需要进行设置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