我正在使用 Gitlab CI 构建我的 Spring Boot 项目映像并将该映像推送到容器注册表。
我的.gitlab-ci.yml
看起来如下:
stages:
- buildImage
project-build:
stage: buildImage
image: openjdk:8u282-jdk
script:
- ./mvnw verify
- ./mvnw spring-boot:build-image
tags:
- docker
这个配置失败是因为docker镜像需要有docker exec来推送镜像到容器注册中心。我使用 尝试了相同的配置image: docker
,但它失败了,因为 maven 需要 java 才能运行。
因此,为了使用该./mvnw spring-boot:build-image
命令,我的 java 映像中需要同时存在 java 和 docker。
我不知道包含两者的任何图像。
如何解决这个问题?
一位同事给了我一个提示,我想我会与其他人分享。
当您注册 Gitlab runner 时,您可以使用套接字绑定让它访问您的 docker dameon。然后您可以在非 docker 镜像中使用它。
在官方文档解释了这一点。
作为参考,我使用以下命令来注册我的跑步者:
gitlab-runner register --non-interactive --url https://<my-gitlab>/ --registration-token <my-token> --executor docker --docker-image docker:19.03 --docker-volumes /var/run/docker.sock:/var/run/docker.sock
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句