Jpom Jpom
🔖首页
  • 一键安装教程
  • Docker 容器安装教程
  • 离线安装教程
  • v2.9.X迁移到v2.10.X指南
  • v2.8.X迁移到v2.9.X指南
  • 数据库迁移到 mysql
  • 实践案例目录
  • 名词解释
  • 什么是 DSL
  • 权限说明
💡DSL说明
  • 加入社区讨论
  • 如何贡献
  • 贡献者们
🤝用户
  • 下载中心
  • Gitee (opens new window)
  • Github (opens new window)
🔖首页
  • 一键安装教程
  • Docker 容器安装教程
  • 离线安装教程
  • v2.9.X迁移到v2.10.X指南
  • v2.8.X迁移到v2.9.X指南
  • 数据库迁移到 mysql
  • 实践案例目录
  • 名词解释
  • 什么是 DSL
  • 权限说明
💡DSL说明
  • 加入社区讨论
  • 如何贡献
  • 贡献者们
🤝用户
  • 下载中心
  • Gitee (opens new window)
  • Github (opens new window)
❤️成为赞助商
  • 解决方案

    • 如何使用 Jpom 的在线构建为 Jpom 发版
    • 万能的 DSL 项目模板(Java)
    • 基于 Jpom 搭建应用部署系统
    • 一键安装实践
    • Docker 容器安装实践
    • 离线安装实践
    • 自定义第三方通知
  • 在线构建

    • 本地构建 + SSH 发布 java 项目
    • 本地构建 + 项目发布 node 项目
    • 本地构建 + SSH 发布 node 项目
    • 本地构建 + 自定义管理 python 项目
    • 容器构建 + 项目发布 java 项目
    • Gitee 提交代码后自动执行构建
    • 使用 gradle 本地构建打包项目并发布到节点
    • GitLab 提交代码后自动执行构建
    • 通过私人令牌导入仓库
  • docker

    • 管理 docker
    • 在线构建 docker 镜像
    • 在线构建 docker 镜像并推送至远程仓库
      • 前言
      • 需要准备的环境
      • 操作指南
        • 配置 docker 到 Jpom
        • 配置 docker 仓库授权
        • 配置项目仓库
        • 配置在线构建
        • 执行构建
        • 查看远程仓库中的镜像
      • 补充说明
        • 命令空间
        • 镜像仓库
      • 附件
    • docker 安装 redis 流程
  • 节点管理

    • 管理编译安装的 nginx
  • 项目管理

    • 自定义管理 java 项目
    • DSL项目接口探活
    • 在 Jpom 中如何使用 DSL 项目来管理 TOMCAT
    • 在 Jpom 中如何使用 DSL 项目来管理 elasticsearch
  • 项目监控

    • 监控项目 + 邮件报警通知
    • DSL 项目接口探活监控报警
  • 在线脚本

    • 使用节点脚本定时备份 docker 中的 mysql 数据库
  • SSH管理

    • 在线管理 SSH 终端以及上传文件(SFTP)和执行命令历史
  • 日常管理

    • 如何开启 h2-console web 访问功能
  • 实践案例
  • docker
bwcx_jzy
2022-12-03
目录

在线构建 docker 镜像并推送至远程仓库

# 前言

本文主要介绍:

如何使用 Jpom 中的在线构建来实现构建 docker 镜像并推送到远程仓库的流程

需要使用到的功能有:

  1. 仓库管理
  2. 在线构建 -> 本地构建:将仓库代码打包出运行文件
  3. docker 管理
  4. 在线构建发布到 docker 镜像并推送到远程仓库

注意:本文采用一键安装同时基于 2.9.18 版本讲解,系统为 centos

# 需要准备的环境

  1. Jpom 服务端(已经安装好、并且配置好了 maven 环境)
  2. 一个 Java 项目仓库 并且已经有 DockerFile 文件

本文就不再从零开始讲解安装教程,如果有不知道该如何安装的可以查看相关文档

  • 一键安装实践 (opens new window)
  • Docker 容器安装 (opens new window)
  • 离线安装 (opens new window)

本文使用物理机直接安装 Jpom 服务端的方式

案例仓库地址:https://gitee.com/keepbx/Jpom-demo-case/ (opens new window) -> springboot-test-jar (opens new window)

# 操作指南

# 配置 docker 到 Jpom

这个步骤主要是在 Jpom 添加 docker 服务,这样可以使用 Jpom 来管理 docker

详细操作步骤:操作文档>> (本文默认您已经配置好了)

img_2.png

这里我们为 docker 添加一个标签值为:test (注意这个值后续会用到)

img_1.png

如果服务端所在服务器中存在 docker 建议使用自动探测方式来添加

本文因为服务端所在的服务器存在 docker,所以 docker 地址为:unix:///var/run/docker.sock

# 配置 docker 仓库授权

本次采用阿里云容器镜像仓库为示例,其他 docker 仓库基本大同小异

img.png

# 配置项目仓库

img.png

仓库目录截图

img_4.png

# 配置在线构建

img_1.png

img_3.png

仓库构建命令:mvn clean package -DskipTests 您需要根据的项目来确定打包命令

仓库产物目录:springboot-test-jar/target/springboot-test-jar-0.0.1-SNAPSHOT.jar 您需要根据的项目来确定产物目录(不了解产物目录该怎么填写的可以查看:说明文档)

执行容器:这里填写在 Jpom 添加 docker 的标签值 ,我们前面为 docker 添加的标签值为 test,这里我们填它即可

执行容器指使用哪个 docker 构建,填写 docker 标签( 标签在 docker 编辑页面配置) 默认查询可用的第一个,如果 tag 查询出多个将依次构建

镜像 tag:registry.cn-shanghai.aliyuncs.com/jpom-demo/jpomtestdocker:1.0

这里注意:一定要写对命名空间不然没有办法正常推送到远程仓库

阿里云仓库可以参考页面提示

img_2.png

容器标签,如:xxxx:latest 多个使用逗号隔开

这里根据你您的项目情况来填写您需要的镜像标签名,注意这里支持使用仓库目录下的变量文件替换变量来实现动态标签名(tag 名)

在 2.9.19+ 版本 需要手动配置 附加环境变量 来实现加载仓库目录下 .env 文件环境变量

使用变量替换示例:xxxx:${VERSION},添加 附加环境变量 .env 文件 后,如果 .env 文件存在 VERSION=1.2 那么替换后为:xxxx:1.2

Dockerfile:这里添加的 springboot-test-jar:springboot-test-jar/Dockerfile

指使用哪个仓库里面的哪个 Dockerfile 文件来执行构建操作,如果多文件夹查看可以指定二级目录如果 springboot-test-jar:springboot-test-jar/Dockerfile

如果您的 Dockerfile 在仓库根路径,直接填写对应的文件名即可。这里支持二级目录的作用主要是用于指定到二级目录里面执行构建,因为部分 Dockerfile 里面 ADD COPY 指令是相对路径的情况

版本递增

开启 dockerTag 版本递增后将在每次构建时自动将版本号最后一位数字同步为构建序号ID

如:当前构建为第 100 次构建

testtag:1.0 -> testtag:1.100

testtag:1.0.release -> testtag:1.100.release

如果没有匹配到数字将忽略递增操作

# 执行构建

img_5.png

img.png

这里可以看到我们的镜像标签最终转换为:registry.cn-shanghai.aliyuncs.com/jpom-demo/jpomtestdocker:1.1

img_3.png

# 查看远程仓库中的镜像

img_4.png

至此我们就可以通过 Jpom 来实现构建镜像并且可以推送到远程仓库了

# 补充说明

使用阿里云镜像仓库需要创建命名空间、镜像仓库,具体操作可以登录阿里云镜像仓库控制台查看

# 命令空间

img_5.png

# 镜像仓库

img_6.png

# 附件

DockerFile

FROM openjdk:8

ENV WORK_PATH=/home/jpom-test/

ENV RUN_LOG=/home/jpom-test-log/

ENV JAR_NAME=springboot-test-jar-0.0.1-SNAPSHOT.jar

ENV CODE_DIR=${WORK_PATH}

WORKDIR ${WORK_PATH}

#ADD  ./target/ .

ADD ./target ${WORK_PATH}

ADD ./script/run.sh ${WORK_PATH}/run.sh

EXPOSE 8084

#ENTRYPOINT [ "java","-Djava.security.egd=file:/dev/./urandom", "-jar","/${jarName}"]
ENTRYPOINT ["/bin/bash", "/home/jpom-test/run.sh"]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
帮助我们改善此文档 (opens new window)
上次更新: 2022/12/03, 18:25:41
在线构建 docker 镜像
docker 安装 redis 流程

← 在线构建 docker 镜像 docker 安装 redis 流程→

最近更新
01
带您了解能替代 Jenkins 的国产【项目运维】开源软件
03-20
02
成为赞助商
03-06
03
在 Jpom 中如何使用 DSL 项目来管理 elasticsearch
02-24
更多文章>
Theme by Vdoing | Copyright © 2017-2023 MIT License  京ICP备17044819号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×