spring-boot - 在 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 运行器时,你可以使用套接字绑定授予它访问你的 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
推荐阅读
- r - str_replace_all 正在替换已经替换的字符
- javascript - Amazon s3:如何在每个新用户名之后命名一个新文件夹?
- ios - swift 4 中的旋转轮盘赌
- javascript - 如何更改 App sync AWS 的状态码?
- angular - 如何处理必须过滤的大量数据
- .net - DependentUpon 不适用于 .NET Core 上的 RESX 文件
- applescript - 拍摄人物照片的 AppleScript
- java - 如何按键对所有 json 对 "key" : "value" 进行排序?
- selenium-webdriver - 如何在 Windows 身份验证中传递\ in URL?
- random - Lua 随机数生成器总是产生相同的数字