jenkins自动部署的springboot项目,发布到远程服务器中用docker运行。

前几篇文章已经整合了提交代码到gitlab触发webhook,jenkins自动构建

今天就把工程运行在远程服务器的docker容器里面。

主要是配置jenkins
先安装 Publish Over SSH
在这里插入图片描述
进入系统配置,这里配置你的远程服务器,我这里用的是同一台机器模拟远程机器。
在这里插入图片描述
拉到最后,Passphrase:你远程机器的密码,
下面那个Remote Directory:/home你可记好了,和后面的配置有关,不然运行不了。

在这里插入图片描述
填好后,应用,保存。测试一下
在这里插入图片描述

进入工程配置
在这里插入图片描述
在这里插入图片描述
从图中可以看出我测试了多少次,写文章真的不容易。
在这里插入图片描述
在这里插入图片描述

#!/bin/bash
pwd
ls -l
cd /home/springboot
ls -l
cd /home/jenkins/workspace/gitlabAndJenkins
echo "拷贝dockerfile"
cp -f /home/jenkins/workspace/gitlabAndJenkins/Dockerfile /home/springboot/
cd /home/springboot
echo "现在的目录"
pwd
echo "现在的目录"
echo “构筑镜像开始”
docker build -t service-provider . 
echo “构筑镜像结束”
MICROSERVICE="microservice-provider"
startflag=$(docker inspect --format '{{.State.Running}}' "$MICROSERVICE")
exit=$(docker ps |grep "$MICROSERVICE")
echo “工程名称”
echo $MICROSERVICE
echo “容器是否运行状态”
echo $startflag
start(){
		echo "容器已经存在,删除容器"
		docker rm  -f  "$MICROSERVICE"
		echo "删除容器成功"
                echo "删除后创建容器"
		docker run --name "$MICROSERVICE" --restart=always -d -p 8190:8090 service-provider
		echo "容器创建完成端口号8190"
}
echo "开始启动"
if [ "$exit" == "" ];then
  echo "没有容器,新建容器"
  docker run --name "$MICROSERVICE" --restart=always -d -p 8190:8090 service-provider
  echo "第一次容器创建完成端口号8190"
else
  echo "容器存在"
  start
fi
echo “启动结束”
docker ps -a
docker run --name microservice-provider --restart=always -d -p 8190:8090 service-provider
echo "删除未用镜像节省空间"
docker rmi -f `docker images -a | grep '<none>' | awk '{print $3}'`
docker ps -a
echo "运行成功"

这里将几个重点:
Source files:这个是相对于jenkins的你工程的名称来说的,就是拷贝源(从那拿工程)gitlabAndJenkins
看构建的控制台:
在这里插入图片描述
Remove prefix:去除前缀,(target/service-provider-0.0.1-SNAPSHOT.jar)省下:service-provider-0.0.1-SNAPSHOT.jar
Remote directory :这个是要把上面工程拷贝到远程服务器上的目录,但注意,是相对于我们上面配服务器时候的目录,(切记哈,不然坑的你头晕)
这里的/springboot 相当于 /home/springboot
我们还需要一个Dockerfile没有后缀

FROM java:8
# 其效果是在主机 /var/lib/docker 目?下?建了一个??文件,并?接到容器的/nginx
VOLUME /home/springboot
# 将jar包添加到容器中并更名?app.jar
ADD service-provider-0.0.1-SNAPSHOT.jar app.jar 
# ?行jar包
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

似曾相识,没错就是我们把springboot部署到服务器的文件。
放的目录在:/home/jenkins/workspace/gitlabAndJenkins/
你看了那么多,上面的配置,这个应该能明白。
在这里插入图片描述
下面我先去/home/springboot下面给它删了。
在这里插入图片描述
现在是第51次构建
在这里插入图片描述
查看所有容器
在这里插入图片描述

工程未改前。打点小广告,作者最近喜欢上了夏婉安的歌曲
在这里插入图片描述
修改后:
在这里插入图片描述
保存。找到工程目录
全部添加

git add -A

在这里插入图片描述
提交代码

git commit -m "20200721"

在这里插入图片描述
提交到远程库

git push origin -u master

在这里插入图片描述
以上三条命令,真的很重要,请记住。
提交就会触发webhook
在这里插入图片描述
查看jenkinslog
在这里插入图片描述
再来个实际验证
访问路径。
http://192.168.142.129:8190/huisetiankong/xxxxxxx
在这里插入图片描述
好了,省下的就是用在自己的项目中持续CI/CD
思考人生。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值