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