不使用Maven插件进行Docker 部署Spring Boot项目

在项目上面建立一个docker文件夹,里面新建一个没有后缀名为
Dockerfile 的文件

如果是聚合工程,则是在需要启动的子工程上面添加,并且在主目录上面添加 pack.sh 文件

image.png

Dockerfile:

FROM java:8
# 预先编译好项目,然后直接找到 jar 进行 push
MAINTAINER dizzy
## 复制文件到容器 leave-preview-7.01.jar
ADD ./target/leave-preview-7.01.jar /leave-preview-7.01.jar
ENV TZ=Asia/Shanghai
## 声明需要暴露的端口
EXPOSE 7300
# 修改JVM 参数
ENV JAVA_OPTS="\
-server \
-Xmx4g \
-Xms4g \
-Xmn128m \
-XX:SurvivorRatio=1 \
-XX:MetaspaceSize=64m \
-XX:MaxMetaspaceSize=64m \
-XX:ParallelGCThreads=4 \
-XX:+PrintGCDetails \
-XX:+PrintTenuringDistribution \
-XX:+PrintGCTimeStamps \
-XX:+HeapDumpOnOutOfMemoryError \
-XX:HeapDumpPath=/ \
-Xloggc:/logs/gc.log \
-XX:+UseGCLogFileRotation \
-XX:NumberOfGCLogFiles=5 \
-XX:+DisableExplicitGC \
-XX:+UseConcMarkSweepGC \
-XX:+UseParNewGC \
-XX:+CMSParallelRemarkEnabled \
-XX:+CMSClassUnloadingEnabled \
-XX:LargePageSizeInBytes=64M \
-XX:+UseFastAccessorMethods \
-XX:+UseCMSInitiatingOccupancyOnly \
-XX:CMSInitiatingOccupancyFraction=80 \
-XX:SoftRefLRUPolicyMSPerMB=0 \
-XX:+PrintClassHistogram \
-XX:+PrintHeapAtGC \
-XX:+UnlockDiagnosticVMOptions \
-XX:+UnlockExperimentalVMOptions \
-XX:+PrintFlagsFinal\
-XX:GCLogFileSize=10M\
-Dspring.profiles.active=dev"
## 配置容器启动后执行的命令 # 执行jar包
ENTRYPOINT ["java","-Dspring.profiles.active=dev","-jar","-Xmx128m","-Xms128m","/leave-preview-7.01.jar"]

JVM 参数可移除

pack.sh:

echo -------------------
echo -     自动脚本     -
echo -------------------
echo 开始pull版本
git stash
git pull origin master
echo 开始编译文件
mvn clean package -Dmaven.test.skip=true
echo 正在停止当前服务
docker stop leave
echo 移除服务镜像
docker rmi leave
echo docker build...
docker build -t 'leave' -f './docker/Dockerfile' .
# 运行 docker
echo 开始运行
docker run -m 256MB --privileged=true --name leave -p 7300:7300 \
 --rm -e TZ=Asia/Shanghai -d leave --spring.profiles.active=pro

工程下载之后直接 sh pack.sh 。

因为运行docker 参数里面加了 --rm ,该参数可以让停止的容器直接进行销毁,这样再次编译的时候只移除镜像即可

–spring.profiles.active=pro 参数,直接指定了项目启动时的配置文件。

如果该脚本在其他位置执行只需要在

拉取代码前加上 cd /home/dizzy,指定代码位置即可

echo -------------------
echo -     自动脚本     -
echo -------------------
echo 进入代码
cd /home/dizzy/code/leave
echo 开始pull版本
git stash
git pull origin master
echo 开始编译文件
mvn clean package -Dmaven.test.skip=true
echo 正在停止当前服务
docker stop leave
echo 移除服务镜像
docker rmi leave
echo docker build...
docker build -t 'leave' -f './docker/Dockerfile' .
# 运行 docker
echo 开始运行
docker run -m 256MB --privileged=true --name leave -p 7300:7300 \
 --rm -e TZ=Asia/Shanghai -d leave --spring.profiles.active=pro

该脚本同样适用于jekenis流水线。编译不做操作,直接执行SH 填补该脚本的路径信息。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值