欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

ASP.NET Core+Docker+Jenkins实现持续集成的完整实例

程序员文章站 2022-05-26 10:58:09
前言 在前后端分离开发的项目当中为了避免重复构建发布,我们需要部署一个持续发布环境,而目前的开发环境服务器都是基于 centos 的,因此每次在本地发布之后还需要打包,上...

前言

在前后端分离开发的项目当中为了避免重复构建发布,我们需要部署一个持续发布环境,而目前的开发环境服务器都是基于 centos 的,因此每次在本地发布之后还需要打包,上传,部署,十分繁琐。故这里采用了比较成熟的jenkins 作为持续部署环境。

方法如下:

1.新建一个asp.net core mvc应用程序:

ASP.NET Core+Docker+Jenkins实现持续集成的完整实例

需要勾选docker支持

2.将其上传到git:

ASP.NET Core+Docker+Jenkins实现持续集成的完整实例

3.建立jenkins任务

(1)选择“新建任务”,输入任务名称,选择“*风格项目”,然后点击确定:

ASP.NET Core+Docker+Jenkins实现持续集成的完整实例

(2)选择“源代码管理”,填入我们的git地址

ASP.NET Core+Docker+Jenkins实现持续集成的完整实例

输入h/2 * * * *设置两分钟拉取一次

(3)构建环境

勾上 delete workspace before build start 是设置构建前删除工作区

勾上 abort the build if it's stuck 是设定构建的超时时间,如果构建使用的时间超过设定的时间,那么就认为这次的构建是失败的。笔者这里超时设置的是10分钟

ASP.NET Core+Docker+Jenkins实现持续集成的完整实例

(4)增加一个execute shell 脚本,并填写以下脚本内容

#!/bin/bash
# 获取短版本号

githash=`git rev-parse --short head`
echo ---------------remove-orphans------------------
docker-compose -f ./docker-compose.yml -f ./docker-compose.override.yml -p webapplication6 down --rmi local --remove-orphans
echo ------------------config-----------------------
docker-compose -f ./docker-compose.ci.build.yml -p webapplication6 config
echo ------------------build------------------------
docker-compose -f ./docker-compose.ci.build.yml -p webapplication6 up --build
echo ---------------publishing...------------------
docker-compose -f "./docker-compose.yml" -f "./docker-compose.override.yml" -p webapplication6 up -d --build

echo ---------------clear-images...------------------
docker rmi $(docker images -f "dangling=true" -q)
echo ---------------clear-containers...------------------
docker rm webapplication6_ci-build_1

2018.4.24 加入镜像和容器清理命令,所以上面的脚本和下图不一样,以上面的shell脚本为准

ASP.NET Core+Docker+Jenkins实现持续集成的完整实例

应用保存,回到项目界面上。点击立即构建进行部署工作

ASP.NET Core+Docker+Jenkins实现持续集成的完整实例

我们可以查看控制台输出:

ASP.NET Core+Docker+Jenkins实现持续集成的完整实例

待构建成功以后访问url(你的ip:端口)试试效果。

不知道端口的可以通过命令docker ps查看

ASP.NET Core+Docker+Jenkins实现持续集成的完整实例

参考资料:

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。