当前位置: 首页 > news >正文

8.jib-maven-plugin构建springboot项目镜像,docker部署配置

目录

1.构建、推送镜像

1.1 执行脚本

2.2 pom.xml配置

​2.部署镜像服务

2.1 执行脚本

2.2 compose文件

3.docker stack常用命令


介绍:使用goole jib插件构建镜像,docker stack启动部署服务;

通过执行两个脚本既可以实现构建镜像、部署服务的过程。本文将对两个脚本及其他核心配置文件做详细解释。

1.构建、推送镜像

1.1 执行脚本

执行脚本sh build.sh即可,脚本位于项目根目录下,脚本build.sh内容如下:

#!/bin/bash
echo "start build myApp image...."# 指定选择prod环境
# 指定登录用户名/密码 admin/admin@server1,如果仓库没有设置登录验证,去掉此配置即可
# 通过goole的jib工具构建镜像,并将镜像推送到192.168.100.90:5000镜像仓库
# DsendCredentialsOverHttp=true,仓库是http则需要加上此参数配置mvn clean compile jib:build  -Djib.to.auth.username=admin -Djib.to.auth.password=admin@server1 -Djib.to.image=192.168.100.99:5000/myApp/backend_prod:2.2 -DsendCredentialsOverHttp=true -Djib.container.jvmFlags=-Dspring.profiles.active=dev,-Duser.timezone=Asia/Shanghai,-Xms4096m,-Xmx6144m,-Xmn512mecho "end build myApp image...."

说明:选择prod环境配置,maven 清理后并编译打包代码,再通过jib工具构建镜像并推送到镜像仓库。

执行成功如下:

2.2 pom.xml配置

由于需要goole的jib插件,所以需要在pom.xml中配置jib,配置如下:

 

2.部署镜像服务

2.1 执行脚本

sh deploy.sh start

在镜像所在服务器的(deploy.sh、docker-compose.yaml文件)目录下执行此脚本命令即可。deploy.sh脚本内容如下:

#!/bin/bash
cmd="$1"service="$2"
config="$3"basepath=$(cd `dirname $0`; pwd)login(){docker login 192.168.100.90:5000 --username=admin --password=admin@server1
}start(){echo "启动/更新服务"#如果192.168.100.90:5000设有密码则需要登录,如果没有则注释掉此行命令;#docker login 192.168.100.90:5000 --username=admin --password=admin@server1#此处调用登陆方法,作用同上行注释命令login# 部署镜像服务,起名为myAppService。# -c , --compose-file:指定stack file的路径位置为同此脚本目录下的docker-compose.yaml文件#--with-registry-auth,向swarm代理发送registry认证详细信息docker stack deploy -c $basepath/docker-compose.yaml myAppService --with-registry-auth
}down(){docker stack rm $service
}# 查询stack服务中的容器运行状态
ps(){docker stack ps $service
}usage(){echo "start version - 启动/更新服务"echo "down - 删除服务"echo "ps - 查看服务中容器的运行状态"echo "login - 登录镜像仓库"
}if [[ $cmd = "start" ]]; thenstart
elif [[ $cmd = "down" ]]; thendown
elif [[ $cmd = "ps" ]]; thenps
elif [[ $cmd = "login" ]]; thenlogin
elseusage
fi

2.2 compose文件

docker-compose.yaml文件内容如下:

#指定compose文件版本
version: '3'
#定义所有的service
services:#定义第一个service,起名为frontbackend:#镜像名称必须要与build.sh中起的名称一模一样image: 192.168.100.90:5000/myApp/backend_prod:2.2#挂载文件 宿主机文件路径:容器内文件路径volumes:- "/usr/local/project_data/my_service/report/:/usr/local/my_service/report/"- "/usr/local/project_data/my_service/json/:/usr/local/my_service/json/"- "/usr/local/project_data/my_service/logs/:/usr/local/my_service/logs/"- "/usr/local/project_data/my_service/model/:/usr/local/my_service/model/"deploy:replicas: 1update_config:parallelism: 1delay: 10srestart_policy:condition: anydelay: 10smax_attempts: 3window: 120sresources:limits:memory: 20240Mreservations:memory: 1024M#端口映射ports:- "9001:9001"

本文件创建了一个名为“backend”的service,也可以在下面继续添加其他服务。(一般情况下将前端服务和后端服务都配置到同一个compose文件中,这样就可以通过deploy.sh同时部署前后端。)

3.docker stack常用命令


启动服务后可通过docker命令查看服务状态:
docker stack ls    查看服务列表
docker stack ps 服务名   查看服务状态
docker stack ps 服务名 --no-trunc    查看服务状态,不要截断输出
docke stack rm 服务名    删除服务

相关文章:

8.jib-maven-plugin构建springboot项目镜像,docker部署配置

目录 1.构建、推送镜像 1.1 执行脚本 2.2 pom.xml配置 ​2.部署镜像服务 2.1 执行脚本 2.2 compose文件 3.docker stack常用命令 介绍:使用goole jib插件构建镜像,docker stack启动部署服务; 通过执行两个脚本既可以实现构建镜像、部…...

海康威视综合安防管理平台任意文件上传

系统介绍 HIKVISION iSecure Center综合安防管理平台是一套“集成化”、“智能化”的平台,通过接入视频监控、一卡通、停车场、报警检测等系统的设备,获取边缘节点数据,实现安防信息化集成与联动,公众号:web安全工具库…...

Linux环境下C++ 接入OpenSSL

接上一篇:Windows环境下C 安装OpenSSL库 源码编译及使用(VS2019)_vs2019安装openssl_肥宝Fable的博客-CSDN博客 解决完本地windows环境,想赶紧在外网环境看看是否也正常。毕竟现在只是HelloWorld级别的,等东西多了&am…...

美国网站服务器SSL证书介绍

美国网站服务器的SSL证书也是一种数字证书,由权威数字证书机构CA验证网站的身份后所颁发,可实现浏览器与网站主机之间的数据传输加密。美国网站服务器搭建的网站在安装SSL证书后会在浏览器显示安全锁标志,数据传输协议则从HTTP传统协议升级为…...

JSP命令标签 静态包含/动态包含

好 下面我们聊聊JSP中的指令标签 这边 我们来说两个 分别是 静态包含 和 动态包含 我们可以将重用性代码包含起来 更好的使用 比如 我们界面上中下 分别有三个导航栏 那么 如果你写三份 就会出现很多重复代码 而且 改起来 也很不方便 要一次改三份 口说无凭 我们来做一个小案…...

Cesium点位弹窗

1.弹窗没法向加入点位一样加入到地图内部,entity没法实现 2.使用绝对定位,将地图组件通过定位加入到地图上,注意弹窗层级一定在地图上 3.通过判断点击位置是否是点位来获取entity信息,将信息显示在弹窗 4.将点击处点位的经纬度转为…...

基于单片机16路抢答器仿真系统

**单片机设计介绍, 基于单片机16路抢答器仿真系统 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机的16路抢答器仿真系统是一种用于模拟和实现抢答竞赛的系统。该系统由硬件和软件两部分组成。 硬件方面&am…...

Linux常用命令亲测总结

在实际开发中,经常会进行下位机的搭建,在搭建过程中,对于常用的LInux命令进行总结,方便自己使用 1.rm -rf 删除对应文件(字节小的) 2、ln -s 文件关联(长的关联短的。三个则关联两次&#xff0…...

二百零六、Flume——Flume1.9.0单机版部署脚本(附截图)

一、目的 在实际项目部署时,要实现易部署易维护,需要把安装步骤变成安装脚本实现快速部署 二、部署脚本在Linux中文件位置 文件夹中只有脚本文件flume-install.sh和tar包apache-flume-1.9.0-bin.tar.gz 三、Flume安装脚本 #!/bin/bash #获取服务器名…...

不必购买Mac,这款国产设计工具能轻松替代Sketch!

介绍 即时设计是新一代可以直接在浏览器中使用的设计工具,具有Sketch和实时协作功能。与本地Sketch相比,增加了实时协作功能,即时设计可以看作是在线Sketch,两个工具可以简单粗暴地总结为一个公式: 即时设计Sketch云…...

通过多线程的方式每次发送10条MQ消息

背景&#xff1a;传入一个List<person>,不知道list中有多少条数据。 import org.apache.rocketmq.client.producer.DefaultMQProducer; import org.apache.rocketmq.client.producer.Message; import org.apache.rocketmq.client.producer.SendResult;import java.util.A…...

springboot上传文件后显示权限不足

前言&#xff1a; 最近一个老项目迁移&#xff0c;原本一直好好的&#xff0c;迁移后上传文件的功能使用不正常&#xff0c;显示文件没有可读取权限&#xff0c;这个项目并不是我们开发和配置的&#xff0c;由第三方开发的&#xff0c;我们只是接手一下。 前端通过api上传文件…...

spring-boot-maven-plugin插件 —— 打包时减小jar包的大小方法

Maven 在打包时会将所依赖的 jar 包全部打包进去&#xff0c;包含了所有的依赖和资源文件&#xff0c;就会导致打出来的包比较大。如果再上传服务器&#xff0c;那么耗时特别长。 由于依赖包变化小&#xff0c;占用空间大&#xff0c;而且大部分情况是添加一次后&#xff0c;就…...

java Bigdecimal

一、BigDecimal概述 BigDecimal是Java在java.math包中提供的线程安全的API类&#xff0c;用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数&#xff0c;但在实际应用中&#xff0c;可能需要对更大或者更小的数进行运算和处理。一般情况下&am…...

【C++11并发】thread 笔记

简介 进程和线程的区别 进程&#xff1a;一个在内存中运行的应用程序。每个进程都有自己独立的一块内存空间&#xff0c;一个进程可以有多个线程&#xff0c;比如在Windows系统中&#xff0c;一个运行的xx.exe就是一个进程。 线程&#xff1a;进程中的一个执行任务&#xff08…...

OBS Studio免费开源录屏工具

OBS是Open Broadcaster Software的缩写&#xff0c;是一款免费且开源的多平台录屏和直播软件。它可以用于录制屏幕、捕获游戏、创建教学视频、直播游戏等。OBS功能强大且灵活&#xff0c;提供了许多配置选项和自定义功能&#xff0c;使用户能够根据自己的需求进行设置和调整。它…...

【汇编】[bx+idata]的寻址方式、SI和DI寄存器

文章目录 前言一、[bxidata]寻址方式1.1 [bxidata]的含义1.2 示例代码 二、SI和DI寄存器2.1 SI和DI寄存器是什么&#xff1f;2.2 [bxsi]和[bxdi]方式寻址2.3 [bxsiidata]和[bxdiidata] 总结 前言 在汇编语言中&#xff0c;寻址方式是指指令如何定位内存中的数据。BX寄存器与偏…...

Java,集合框架,关于Map接口与Collections工具类

目录 Map接口 Map及其实现类的对比&#xff1a; HashMap中元素的特点&#xff1a; 相关方法&#xff1a; 添加、修改操作: 删除操作&#xff1a; 元素查询的操作: 元视图操作的方法&#xff1a; TreeMap的使用&#xff1a; Properties类&#xff1a; Collections工具…...

【实用技巧】更改ArduinoIDE默认库文件位置,解放系统盘,将Arduino15中的库文件移动到其他磁盘

本文主要介绍更改Arduino IDE &#xff08;含2.0以上版本&#xff09;默认库文件位置的方法。 原创文章&#xff0c;转载请注明出处&#xff1a; 【实用技巧】更改ArduinoIDE默认库文件位置&#xff0c;解放C盘&#xff0c;将Arduino15中的库文件移动到其他磁盘-CSDN博客文章浏…...

二、什么是寄存器

目录 一、STM32芯片架构简图及系统框图 1.1 STM32芯片架构简图 1.1.1 FLASH是什么&#xff0c;用来做什么 1.1.2 SRAM是什么&#xff0c;用来做什么 1.1.3 片上外设是什么&#xff0c;用来做什么 1.2 系统框图 1.2.1 驱动单元 1.2.2 被动单元 二、什么是寄存器 2.1 存…...

【JVM】- 内存结构

引言 JVM&#xff1a;Java Virtual Machine 定义&#xff1a;Java虚拟机&#xff0c;Java二进制字节码的运行环境好处&#xff1a; 一次编写&#xff0c;到处运行自动内存管理&#xff0c;垃圾回收的功能数组下标越界检查&#xff08;会抛异常&#xff0c;不会覆盖到其他代码…...

React19源码系列之 事件插件系统

事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...

【AI学习】三、AI算法中的向量

在人工智能&#xff08;AI&#xff09;算法中&#xff0c;向量&#xff08;Vector&#xff09;是一种将现实世界中的数据&#xff08;如图像、文本、音频等&#xff09;转化为计算机可处理的数值型特征表示的工具。它是连接人类认知&#xff08;如语义、视觉特征&#xff09;与…...

IT供电系统绝缘监测及故障定位解决方案

随着新能源的快速发展&#xff0c;光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域&#xff0c;IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选&#xff0c;但在长期运行中&#xff0c;例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...

Caliper 配置文件解析:config.yaml

Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...

【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分

一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计&#xff0c;提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合&#xff1a;各模块职责清晰&#xff0c;便于独立开发…...

学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”

2025年#高考 将在近日拉开帷幕&#xff0c;#AI 监考一度冲上热搜。当AI深度融入高考&#xff0c;#时间同步 不再是辅助功能&#xff0c;而是决定AI监考系统成败的“生命线”。 AI亮相2025高考&#xff0c;40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕&#xff0c;江西、…...

C++.OpenGL (20/64)混合(Blending)

混合(Blending) 透明效果核心原理 #mermaid-svg-SWG0UzVfJms7Sm3e {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-icon{fill:#552222;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-text{fill…...

从 GreenPlum 到镜舟数据库:杭银消费金融湖仓一体转型实践

作者&#xff1a;吴岐诗&#xff0c;杭银消费金融大数据应用开发工程师 本文整理自杭银消费金融大数据应用开发工程师在StarRocks Summit Asia 2024的分享 引言&#xff1a;融合数据湖与数仓的创新之路 在数字金融时代&#xff0c;数据已成为金融机构的核心竞争力。杭银消费金…...

(一)单例模式

一、前言 单例模式属于六大创建型模式,即在软件设计过程中,主要关注创建对象的结果,并不关心创建对象的过程及细节。创建型设计模式将类对象的实例化过程进行抽象化接口设计,从而隐藏了类对象的实例是如何被创建的,封装了软件系统使用的具体对象类型。 六大创建型模式包括…...