ASP.NET Core+Docker+Jenkins实现持续集成的完整实例
在前后端分离开发的项目当中为了避免重复构建发布,我们需要部署一个持续发布环境,而目前的开发环境服务器都是基于 CentOS 的,因此每次在本地发布之后还需要打包,上传,部署,十分繁琐。故这里采用了比较成熟的Jenkins 作为持续部署环境。
方法如下:
1.新建一个ASP.NET Core MVC应用程序:
需要勾选Docker支持
2.将其上传到git:
3.建立Jenkins任务
(1)选择“新建任务”,输入任务名称,选择“自由风格项目”,然后点击确定:
(2)选择“源代码管理”,填入我们的git地址
输入H/2 * * * *设置两分钟拉取一次
(3)构建环境
勾上 Delete workspace before build start 是设置构建前删除工作区
勾上 Abort the build if it's stuck 是设定构建的超时时间,如果构建使用的时间超过设定的时间,那么就认为这次的构建是失败的。笔者这里超时设置的是10分钟
(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脚本为准
应用保存,回到项目界面上。点击立即构建进行部署工作
我们可以查看控制台输出:
待构建成功以后访问url(你的ip:端口)试试效果。
不知道端口的可以通过命令
docker ps查看
参考资料:
https://www.geek-share.com/detail/2736591435.html
https://www.geek-share.com/detail/2736592850.html
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。
您可能感兴趣的文章:
- ASP.NET Core + Docker + Jenkins + gogs + CentOS 从零开始搭建持续集成
- asp.net core 通过 TeamCity 实现持续集成笔记
- Centos7 & Docker & Jenkins & ASP.NET Core 2.0 自动化发布和部署
- Jenkins-Docker-SpringBoot-java-git-gradle-持续集成与自动部署-实现跨服务器部署
- Centos7 & Docker & Jenkins & ASP.NET Core
- Asp.Net Core 2.0 项目实战(9) 日志记录,基于Nlog或Microsoft.Extensions.Logging的实现及调用实例
- docker结合jenkins、gitlab实现.netcore的持续集成实践
- 【.NET Core】Docker Jenkins ASP.NET Core自动化部署
- ASP.NET Core 集成 IdentityServer4 实现 OAuth 2.0 服务
- C#实现多级子目录Zip压缩解压实例 NET4.6下的UTC时间转换 [译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了 asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程 asp.net core异步进行新增操作并且需要判断某些字段是否重复的三种解决方案 .NET Core开发日志
- Docker + Jenkins 持续部署 ASP.NET Core 项目
- 在ASP.NET Core中实现一个Token base的身份认证实例
- Centos7 & Docker & Jenkins & ASP.NET Core 2.0 自动化发布和部署
- Jenkins+ant_实现Jmeter脚本持续集成测试实例
- Jenkins+Github+Docker+Maven实现持续集成
- ASP.NET Core与NLog集成的完整步骤
- asp.net core集成MongoDB的完整步骤