gpt4 book ai didi

gitlab - 使用 GitLab CI 构建和推送 docker 镜像

转载 作者:行者123 更新时间:2023-12-04 03:04:17 25 4
gpt4 key购买 nike

我想使用 GitLab CI 构建 docker 镜像并将其推送到我的本地 nexus 存储库

这是我当前的 CI 文件:

image: docker:latest

services:
- docker:dind

before_script:
- docker info
- docker login -u some_user -p nexus-rfit some_host

stages:
- build

build-deploy-ubuntu-image:
stage: build
script:
- docker build -t some_host/dev-image:ubuntu ./ubuntu/
- docker push some_host/dev-image:ubuntu
only:
- master
when: manual

也有一个 alpin docker 的工作,但是当我想运行它时,它失败并出现以下错误:

Checking out 13102ac4 as master... Skipping Git submodules setup $ docker info Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? ERROR: Job failed: exit code 1



所以从技术上讲,镜像中的 docker 守护进程没有运行,但我不知道为什么?

最佳答案

GitLab 人员在他们的文档中有关于在基于 docker 的作业中使用 docker-build 的引用:https://docs.gitlab.com/ce/ci/docker/using_docker_build.html#use-docker-in-docker-executor .由于您似乎已准备好一切(即正确的工作图像和附加 docker:dind 服务),因此很可能是运行程序配置问题。

如果您查看文档中的第二步:

  1. Register GitLab Runner from the command line to use docker and privileged mode:

    [...]

    Notice that it's using the privileged mode to start the build and service containers. If you want to use docker-in-docker mode, you always have to use privileged = true in your Docker containers.



可能您正在使用 的运行者未在特权模式下配置 因此无法在内部正确运行 docker 守护进程。您可以直接编辑 /etc/gitlab-runner/config.toml在您注册的运行者上添加该选项。

(此外,请阅读文档部分,了解有关与您选择的存储驱动程序相关的性能/运行器在使用 dind 时支持的性能的更多信息)

关于gitlab - 使用 GitLab CI 构建和推送 docker 镜像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46049069/

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