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

  • Post author:
  • Post category:其他




前几篇文章已经整合了提交代码到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

思考人生。



版权声明:本文为weixin_47372236原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。