Gitlab CI构建docker镜像

Gitlab CI构建docker镜像 利用Gitlab CI结合Docker构建docker镜像主要有三种方法. 将 Docker 执行器与 Docker 镜像一起使用. 使用 shell 执行器 Docker socket 绑定 现在来讲讲我的具体使用过程和遇到的一些问题,由于我的gitlab-runners使用了docker执行器,所以我主要使用了1和3两种方法。 由于网上的相关文章主要是采用 Docker in Docker 的方式,所以最开始我也是采用这种方式。 我的ci脚本是: services: - docker:dind variables: OUTPUT_NAME: bot DOCKER_HOST: tcp://localhost:2375 DOCKER_DRIVER: overlay2 DOCKER_TLS_CERTDIR: "" build_docker_image_and_push_to_nexus: stage: build image: docker:stable extends: .go-cache script: - docker info - docker build -t docker.overtsarry.vip/bot:1.0.1 . - docker login --username=$username docker.overtsarry.vip --password $pwd - docker push docker.overtsarry.vip/bot:1.0.1 运行CI,发现CI运行失败,具体报错是 Cannot connect to the Docker daemon at tcp://localhost:2375. Is the docker daemon running? 没有发现docker daemon运行,由于gitlab doc宕机了,在网上又看了一些文章,根据那些文章进行了十几次的修改,还是没有运行成功。后来查看gitlab相关文档,发现docker需要在privileged下运行。(The Docker image has all of the docker tools installed and can run the job script in context of the image in privileged mode.) 就需要修改gitlab-runners的配置文件,设置privileged = true即可。 修改完配置文件,再次运行CI,docker镜像顺利构建上传。 使用Docker in Docker构建成功后,我还顺便尝试使用Docker socket 绑定来构建docker镜像。 这次有了文档辅助进度快了许多,具体的流程: ...

七月 22, 2021 · overstarry