当前位置:网站首页>spingboot 容器项目完成CICD部署
spingboot 容器项目完成CICD部署
2022-08-05 05:14:00 【爱埋珊瑚海~~】
GitLab+Jenkins+Docker 完成SpringBoot项目的持续集成
部署介绍
传统的项目持续集成,通常由gitlab+jenkins完成项目的持续集成部署。随着容器化技术的日益成熟,很多项目都采用容器化部署管理,本章节则会给大家介绍怎么完成docker项目的持续集成部署
部署架构

部署准备
项目docker化
以springboot项目test-service为例说明,首先需要新建一个Dockerfile文件,内容如下:
FROM java:8
ENV LANG=C.UTF-8
ENV TZ=Asia/Shanghai
ADD test-service.jar app.jar
CMD ["sh","-c","java -Xmx512m -Xms256m -XX:SurvivorRatio=4 -XX:+UseG1GC -XX:MaxGCPauseMillis=50 -jar -XX:InitiatingHeapOccupancyPercent=70 -Xloggc:/var/log/java_gc.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps app.jar "]
制作生成镜像制品和执行运行容器的脚本
docker images | grep test-service/latest &> /dev/null
if [ $? -ne 0 ]
then
echo "test-service/latest is not existed,we will docker build it!!!"
docker build -t test-service/latest .
else
echo "test-service/latest is existed!!!"
docker rmi -f test-service/latest
docker build -t test-service/latest .
fi
docker ps -a| grep test-service &> /dev/null
if [ $? -ne 0 ]
then
echo "test-service is not up,we will start up it!!!"
docker run -d -p 8099:8099 --name test-service test-service/latest
else
docker rm -f metadata-service
docker run -d -p 8099:8099 --name test-service metadata-service/latest
echo "test-service is up!!!"
fi
Jenkins部署配置
构建环境

其中clean的参数说明如下图所示:
构建配置

执行的脚本如下:
cd /home/data/
rm -rf test-service
mkdir test-service
cp /var/lib/docker/volumes/jenkins_data/_data/workspace/test-service/test-service/target/test-service.jar /home/data/test-service
cp /var/lib/docker/volumes/jenkins_data/_data/workspace/test-service/test-service/Dockerfile /home/data/test-service
cp /var/lib/docker/volumes/jenkins_data/_data/workspace/test-service/test-service/dockerBuild.sh /home/data/test-service
cd /home/data/test-service
chmod -R 777 dockerBuild.sh
./dockerBuild.sh
边栏推荐
- flink部署操作-flink standalone集群安装部署
- Calling Matlab configuration in pycharm: No module named 'matlab.engine'; 'matlab' is not a package
- Pycharm中使用pip安装第三方库安装失败:“Non-zero exit code (2)“的解决方法
- Lecture 4 Backpropagation Essays
- Error creating bean with name 'configDataContextRefresher' defined in class path resource
- 【Reading】Long-term update
- 浅谈Servlet生命周期
- [Remember 1] June 29, 2022 Brother and brother double pain
- 第5讲 使用pytorch实现线性回归
- Matplotlib(三)—— 实践
猜你喜欢

【NFT开发】设计师无技术基础保姆级开发NFT教程在Opensea上全套开发一个NFT项目+构建Web3网站

将照片形式的纸质公章转化为电子公章(不需要下载ps)

数据库 单表查询
![LeetCode: 1403. Minimum subsequence in non-increasing order [greedy]](/img/99/41629dcd84e95eb3672d0555d6ef2c.png)
LeetCode: 1403. Minimum subsequence in non-increasing order [greedy]

第二讲 Linear Model 线性模型

Lecture 5 Using pytorch to implement linear regression

【过一下4】09-10_经典网络解析
![[Study Notes Dish Dog Learning C] Classic Written Exam Questions of Dynamic Memory Management](/img/0b/f7d9205c616f7785519cf94853d37d.png)
[Study Notes Dish Dog Learning C] Classic Written Exam Questions of Dynamic Memory Management

Calling Matlab configuration in pycharm: No module named 'matlab.engine'; 'matlab' is not a package
![[Let's pass 14] A day in the study room](/img/fc/ff4161db8ed13a0c8ef75b066b8eab.png)
[Let's pass 14] A day in the study room
随机推荐
学习总结week2_1
redis persistence
Database experiment five backup and recovery
小白一枚各位大牛轻虐虐
day7-列表作业(1)
flink项目开发-配置jar依赖,连接器,类库
[Go through 9] Convolution
Flink accumulator Counter 累加器 和 计数器
【过一下15】学习 lstm的一周
Mesos学习
[Study Notes Dish Dog Learning C] Classic Written Exam Questions of Dynamic Memory Management
Map、WeakMap
【过一下 17】pytorch 改写 keras
SparkML-初探-文本分类
位运算符与逻辑运算符的区别
BFC(Block Formatting Context)
[Go through 10] sklearn usage record
[Skill] Long-term update
The difference between the operators and logical operators
pycharm中调用Matlab配置:No module named ‘matlab.engine‘; ‘matlab‘ is not a package