首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Gitlab CI中构建和推送Spring Boot maven插件docker镜像

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

Stack Overflow用户
提问于 2021-03-16 23:38:29
回答 2查看 621关注 0票数 1

我正在使用Gitlab CI来构建我的Spring Boot项目镜像,并将该镜像推送到容器注册表。

我的.gitlab-ci.yml如下所示:

代码语言:javascript
复制
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和docker都出现在我的java映像中。

我不知道有哪张图片同时包含了这两个元素。

如何解决这个问题?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-03-17 00:56:02

一位同事给了我一个提示,我想我应该把它分享给其他人。

您可以在注册Gitlab运行器时,使用套接字绑定授予它对docker守护程序的访问权限。然后,您可以在非docker映像中使用它。

official documentation解释了这一点。

作为参考,我使用以下命令注册我的runner:

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

票数 3
EN

Stack Overflow用户

发布于 2021-03-17 00:14:14

如果你还没有,你可以看看Jib:https://www.baeldung.com/jib-dockerizing。它允许您在没有docker守护进程运行的情况下构建和推送docker镜像。它添加了一个插件依赖项和一些配置,但它只允许您使用jdk镜像。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66658487

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档