网站主机和服务器,网站访问频率,海南网站建设获客,wordpress 迁移 群晖使用docker自动构建spring boot jar#xff0c;自动发布最新镜像的简单shell脚本。一般在docker上部署流程问为#xff1a; 构建docker镜像 - 停止旧版本 - 杀掉旧版本 - 部署最新镜像。
1、maven/mvd/gradle 打包spring boot jar 2、编写Dockerfile#xff0c…使用docker自动构建spring boot jar自动发布最新镜像的简单shell脚本。一般在docker上部署流程问为 构建docker镜像 - 停止旧版本 - 杀掉旧版本 - 部署最新镜像。
1、maven/mvd/gradle 打包spring boot jar 2、编写Dockerfile 注意 如果项目中涉及导出word/excel/ppt/pdf/md/txt等文件并且涉及中文需要在将中文字体同时构建到镜像中解决导出文件中文乱码问题。若无可移除配置
FROM openjdk:8-jdk-alpine
# 作者
MAINTAINER Yang douya
# jar包添加到镜像中 第一个是maven打包jar 第二个为在镜像中得jar名称 通常aven打包jar都会价版本号 镜像版本不用
ADD bt-starter.jar bt-starter.jar
# 应用中有中文标识 特别是验证码会报java.lang.NullPointerException at sun.awt.FontConfiguration.getVersion异常 解决增加字体
RUN echo -e https://mirrors.aliyun.com/alpine/v3.6/main/\nhttps://mirrors.aliyun.com/alpine/v3.6/community/ /etc/apk/repositories \ apk update \ apk upgrade \ apk --no-cache add ttf-dejavu fontconfig
# 安装中文 安装本地中文字体一定要却换工作地址 [可能存在找不到jar问题]
#WORKDIR /home/yangdouya/projects/smart-transport
#直接将字体文件目录和需要构建的 jar放在同一目录即可解决切换工作空间导致找不jar问题
COPY font/simsun.ttf /usr/share/fonts
# 解决时差8小时问题
ENV TZAsia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime echo $TZ /etc/timezone
# 暴露端口号
EXPOSE 8085
# 容器启动之后要执行的命令
ENTRYPOINT [java, -jar, bt-starter.jar, --spring.profiles.activetest]一键执行构建镜像和发布shell脚本docker-build-run.sh
#!/bin/sh
C_VERSION$(docker ps | grep bt-starter | awk {print $2}| awk -F : {print $2})
read -p 当前版本号 $C_VERSION 请输入最新版本号: inputVal
echo 输入 $inputVal
# 执行构建指定版本镜像
docker build -t bt-starter:$inputVal .
# 执行完成后查询是否运行得有镜像并停止删除容器
PID$(docker ps | grep bt-starter | awk {print $1})
if [ -z $PID ]
thenecho bt-starter 无正在运行容器进程
elseecho bt-starter 正在停止容器进程 $PID
fi
PIDS$(docker ps -a | grep bt-starter | awk {print $1})
for pid in $PIDS
dodocker stop $piddocker rm $pid
done
echo bt-starter 停止容器 - 删除容器完成
# 执行启动最新版本容器
echo 正在启动镜像 bt-starter:$inputVal
docker run --name bt-starter -p 8080:8080 \
-v /etc/localtime:/etc/localtime \
-v /home/yangdouya/projects/data/export-template:/data/export-template \
-v /home/yangdouya/projects/data/temp:/data/temp \
-v /home/yangdouya/projects/data/logs:/logs \
-d bt-starter:$inputValecho 启动镜像 bt-starter:$inputVal 完成将docker-build-run.sh脚本设置为可执行文件 chmod x docker-build-run.sh
执行脚本 docker-build-run.sh
这里预留了当前jar的版本输入如果jar包有版本号可以直接获取。