gpt4 book ai didi

docker - Gitlab 管道 docker 构建阶段

转载 作者:行者123 更新时间:2023-12-02 08:21:36 25 4
gpt4 key购买 nike

我正在尝试在我的 gitlab 管道中实现 docker 构建阶段。理想情况下,我能够首先构建镜像,然后针对容器运行后续阶段。但是,当我使用下面的 gitlab-ci.yaml 中的构建步骤时,我有时会收到错误:

error during connect: Get http://docker:2375/v1.37/info: dial tcp: lookup docker on 10.51.240.10:53: no such host ERROR: Job failed: error executing remote command: command terminated with non-zero exit code: Error executing in Docker Container: 1

当它不起作用时,我只能猜测 docker 守护进程尚未准备好连接。有人对如何进行这件事有任何想法吗?

gitlab-ci.yaml:

stages:
- build

build:
image: docker:18
services:
- docker:18-dind
variables:
DOCKER_DRIVER: overlay
DOCKER_HOST: tcp://docker:2375/
before_script:
- docker info
script:
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" "$CI_REGISTRY"
- docker pull ${CI_REGISTRY_IMAGE}:latest || echo Could not fetch ${CI_REGISTRY_IMAGE}:latest from registry
- docker pull ${CI_REGISTRY_IMAGE}:${CI_COMMIT_REF_SLUG} || echo Could not fetch ${CI_REGISTRY_IMAGE}:${CI_COMMIT_REF_SLUG} from registry
- docker build -t ${CI_REGISTRY_IMAGE}:${CI_COMMIT_REF_SLUG} --cache-from ${CI_REGISTRY_IMAGE}:${CI_COMMIT_REF_SLUG} .
- docker push ${CI_REGISTRY_IMAGE}:${CI_COMMIT_REF_SLUG}
- if [[ ${CI_COMMIT_REF_SLUG} == "master" ]] ; then docker tag ${CI_REGISTRY_IMAGE}:${CI_COMMIT_REF_SLUG} ${CI_REGISTRY_IMAGE}:latest ; fi
- if [[ ${CI_COMMIT_REF_SLUG} == "master" ]] ; then docker push ${CI_REGISTRY_IMAGE}:latest ; fi
stage: build

更新:我正在使用 kubernetes 执行器。

最佳答案

您是否使用 gitlab-runner 来运行作业?如果是这样,您是否设置 --executor docker 注册您的运行程序?

您是否将 /var/run/docker.sock 作为卷传递给运行器?

我在 GitLab CI 中构建了 docker 镜像,工作没有任何问题。我没有传递任何 DOCKER_DRIVERDOCKER_HOST 变量。

关于docker - Gitlab 管道 docker 构建阶段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49855271/

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