在 Gitlab CI 中构建和推送 Spring Boot maven 插件 docker 镜像

麦克菲尔

我正在使用 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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章