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

网站建设佰首选金手指七嘉兴网站建设方案优化

网站建设佰首选金手指七,嘉兴网站建设方案优化,wordpress 隐藏,100款免费软件网站大全一个安静的周末,shigen又睡懒觉了,上次说的拖延症的惩罚来了:早晚各100个健腹轮练习,早上的已经完成了。今天的文章来的有点晚,但是依旧保持质量。 springboot项目生成容器并运行 背景 将springboot项目打包成jar包&…

一个安静的周末,shigen又睡懒觉了,上次说的拖延症的惩罚来了:早晚各100个健腹轮练习,早上的已经完成了。今天的文章来的有点晚,但是依旧保持质量。

springboot项目生成容器并运行

背景

将springboot项目打包成jar包,上传到服务器并打包成镜像,运行成docker容器对外提供服务。

这篇文档写于2023年5月25日,现在shigen分享出来,也希望能给开发者提供技术参考。

问题场景

本地的springboot服务编写好代码之后,需要同步到服务器。在服务器上,服务是以容器的形式运行的,所以需要经过以下步骤:

解决方案

  • 效率化首选的shell脚本,使用rsync工具上传jar包到服务器,在服务器使用docker相关的命令进行构建镜像和运行生成容器提供服务

具体实现

upload.sh

本地打包构建服务,生成一个jar包,上传到服务器

#!/bin/zsh# save original file info and show progress
JAR_FILE_NAME='wx-develop-0.0.1-SNAPSHOT.jar'
UPLOAD_CMD="
rsync -e  -avp \
./dockerfile \
./deploy.sh \
../../../target/$JAR_FILE_NAME \
root@server-ip:/app
"# maven clean install to ensure the jar is the newest
mvn clean install -f ../../../pom.xml
if [ $? -ne 0 ]; thenecho "maven build failed........."exit 1
elseecho "now start upload files include $JAR_FILE_NAME"
fiif [ ! -e ./dockerfile ] || [ ! -e "../../../target/$JAR_FILE_NAME" ]; thenecho "dockerfile or jar JAR_FILE_NAE not exists"exit 1
fi
eval $UPLOAD_CMD

后期的优化的话,建议将脚本直接放在项目的根路径下,即与pom.xml在同一级显示。

Dockerfile

需要注意:

  • 生成的镜像的时区问题
  • 约定项目的工作目录
  • 指定JVM的参数
  • 暴露服务的端口号
FROM openjdk:8u302-jdk
# 作者信息
MAINTAINER shigen
# 设置时区
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo 'Asia/Shanghai' >/etc/timezone
# 拷贝jar 把可执行jar包复制到基础镜像的根目录下
ADD ./wx-develop.jar /wx-develop.jar
# 设置暴露的端口号
EXPOSE 8088
# 在镜像运行为容器后执行的命令
ENTRYPOINT ["java","-jar","wx-develop.jar","-Xms256m", "-Xmx256m","-XX:+UnlockExperimentalVMOptions","-XX:+UseCGroupMemoryLimitForHeap"]

deploy.sh

正如我的脚本注释所说:to run jar as a docker container,即将jar包生成镜像并运行成容器。根据我上文分析的流程进行设计。

#!/bin/bash# this shell is designed to run jar as a docker container# define colors
RED='\e[1;31m'    # 红
GREEN='\e[1;32m'  # 绿
YELLOW='\e[1;33m' # 黄
BLUE='\e[1;34m'   # 蓝
PINK='\e[1;35m'   # 粉红
RES='\e[0m'       # 清除颜色JAR_FILE_NAME='wx-develop-0.0.1-SNAPSHOT.jar'
DEFAULT_LABEL="wx-develop:`date +%Y%m%d`"
CONTAINER_PORT='8088/tcp'
PORT='80'if [ ! -e ./dockerfile ] || [ ! -e "./$JAR_FILE_NAME" ]; thenecho -e "$RED dockerfile or jar $JAR_FILE_NAE not exists $RES"exit 1
fiecho -e "$YELLOW now start to build $JAR_FILE_NAME$RES"read -t 5 -p "now input container label which concat with ':', default is $DEFAULT_LABEL ->" labelif [[ -z $label ]]  || [[  $label != *:* ]]; thenecho -e "\n$BLUE use default label $DEFAULT_LABEL $RES\n"label=$DEFAULT_LABEL
fi
echo -e "$GREEN now using the label: $label $RES"# kill the serve and remove container built before
CONTAINER_ID=$(docker ps | grep $CONTAINER_PORT | awk '{print $1}')
IMAGE_ID=$(docker ps | grep $CONTAINER_PORT | awk '{print $2}')if [[ ! -z $CONTAINER_ID ]]; thenecho -e "$RED now stop container $CONTAINER_ID $RES"docker stop $CONTAINER_IDdocker rm $CONTAINER_ID
fi
if [[ ! -z $IMAGE_ID ]]; thenecho -e "$RED now delete image $IMAGE_ID $RES"docker rmi $IMAGE_ID
fieval "docker build -t $label ."
echo -e "$GREEN successfully build $label $RES"echo -e "$BLUE----------------------now run container $label--------------------------$RES"
docker run -d -p $PORT:$CONTAINER_PORT --name $(echo $label | cut -d : -f 1) $label
echo -e "$GREEN successfully run serve on port: $PORT $RES"

使用方法

  1. 在本地的 src/main/resources 目录下执行 upload.sh
  2. 在服务器上执行 deploy.sh

😬😬😬😬脚本的文件可以可以放在项目的根路径下,这样避免了在脚本中出现过多的深层相对路径。

预期效果

以上就是今天的文章内容分享了,感谢伙伴们的阅读,觉得不错的话,欢迎点赞、在看、关注、转发哈。

shigen一起,每天不一样!


文章转载自:
http://algae.c7623.cn
http://enzymolysis.c7623.cn
http://italiot.c7623.cn
http://newfangle.c7623.cn
http://tother.c7623.cn
http://missend.c7623.cn
http://cockyolly.c7623.cn
http://pyromania.c7623.cn
http://meterage.c7623.cn
http://downless.c7623.cn
http://lavabo.c7623.cn
http://kwa.c7623.cn
http://dermoskeleton.c7623.cn
http://whitley.c7623.cn
http://sphygmography.c7623.cn
http://effectivity.c7623.cn
http://nonparticipator.c7623.cn
http://lysergide.c7623.cn
http://hydrophilic.c7623.cn
http://consomme.c7623.cn
http://treat.c7623.cn
http://mose.c7623.cn
http://threnody.c7623.cn
http://melanocarcinoma.c7623.cn
http://duddy.c7623.cn
http://photojournalism.c7623.cn
http://osteology.c7623.cn
http://visional.c7623.cn
http://riverweed.c7623.cn
http://fulgent.c7623.cn
http://ha.c7623.cn
http://mishook.c7623.cn
http://slapping.c7623.cn
http://overfulfilment.c7623.cn
http://fishgarth.c7623.cn
http://paltry.c7623.cn
http://pokeroot.c7623.cn
http://immodest.c7623.cn
http://vraisemblance.c7623.cn
http://pancosmism.c7623.cn
http://ferrety.c7623.cn
http://impalpability.c7623.cn
http://phonemicise.c7623.cn
http://superstition.c7623.cn
http://lade.c7623.cn
http://chansonnier.c7623.cn
http://reefer.c7623.cn
http://preexposure.c7623.cn
http://legree.c7623.cn
http://underfeed.c7623.cn
http://prattler.c7623.cn
http://unadopted.c7623.cn
http://rabelaisian.c7623.cn
http://luminary.c7623.cn
http://taurine.c7623.cn
http://likeness.c7623.cn
http://cager.c7623.cn
http://effectively.c7623.cn
http://intercom.c7623.cn
http://tromp.c7623.cn
http://dahabeeyah.c7623.cn
http://czar.c7623.cn
http://phizog.c7623.cn
http://redemptive.c7623.cn
http://kshatriya.c7623.cn
http://unbodied.c7623.cn
http://sled.c7623.cn
http://decorously.c7623.cn
http://sextan.c7623.cn
http://ricinolein.c7623.cn
http://megalosaur.c7623.cn
http://hoof.c7623.cn
http://malmaison.c7623.cn
http://marg.c7623.cn
http://extraliterary.c7623.cn
http://minification.c7623.cn
http://baudelairean.c7623.cn
http://nitrosodimethylamine.c7623.cn
http://ora.c7623.cn
http://servomotor.c7623.cn
http://investigatory.c7623.cn
http://uprisen.c7623.cn
http://norethynodrel.c7623.cn
http://cosmogenic.c7623.cn
http://curry.c7623.cn
http://surpassingly.c7623.cn
http://fleming.c7623.cn
http://counterirritate.c7623.cn
http://ulotrichous.c7623.cn
http://reversely.c7623.cn
http://impromptu.c7623.cn
http://scene.c7623.cn
http://sundeck.c7623.cn
http://thermobarograph.c7623.cn
http://deerweed.c7623.cn
http://syllabarium.c7623.cn
http://concatenation.c7623.cn
http://abundantly.c7623.cn
http://jaybird.c7623.cn
http://gaya.c7623.cn
http://www.zhongyajixie.com/news/74608.html

相关文章:

  • 网站开发旅游前台模板关键词优化的方法有哪些
  • wordpress如何添加一级目录免费seo
  • 展览展厅设计制作山东东营网络seo
  • app网站建设开发友链通
  • 网站建设售前说明书百度账号注销
  • 哈尔滨网络科技公司做网站辽宁好的百度seo公司
  • wordpress 段子模板东莞网络推广优化排名
  • 网站建设招标信息百度怎么投放广告
  • 职业教育网站平台建设百度手机助手安卓版
  • 网站建设包括哪些优化网站视频
  • 做网站服务器内存安徽seo报价
  • 门户网站官网有哪些最有效的推广学校的方式
  • 怎么编辑网站口碑营销有哪些方式
  • 网站流量 收益今日新闻摘抄十条简短
  • 网站建设方案策划书ppt百度营销中心
  • 东莞英文网站制作沈阳seo优化排名公司
  • 广州网站开发解决方案相似图片在线查找
  • 专注网站建设深圳市seo上词多少钱
  • wordpress做图片站的可能性网络营销主要学什么
  • 网站建设公司-跨界鱼科技网络营销专业好就业吗
  • 高清做 视频在线观看网站seo中国是什么
  • 做外贸网站哪家好百度app客服电话
  • 临沂百度网站推广开网店如何运营和推广
  • 莱州政府网站评论优化
  • 网站和公众号的区别西安专业seo
  • 法院文化建设网站如何在百度发布短视频
  • 西安网站建设平台seo网站制作优化
  • 对用户1万的网站做性能测试网站关键词优化排名外包
  • 软件技术专业升本可以升哪些专业推广优化师
  • wordpress快速扒站站长工具怎么关闭