Dockerfile+Jenkinsfile+GitLab轻松实现.NetCore程序的CI&CD
一.相关介绍
Jenkinsfile :Jenkinsfile 是 Jenkins 2.x 或更高版本核心特性 Pipeline(流水线) 的脚本,或者说对于Jenkins 流水线的定义被写在一个叫Jenkinsfile的文本文件中,该文件可以被提交到项目的源代码的控制仓库。这是"流水线即代码"的基础; 将CD 流水线作为应用程序的一部分,像其他代码一样进行版本化和审查。 创建 `Jenkinsfile`并提交它到源代码控制中提供了以下几个好处:
- 自动地为所有分支创建流水线构建过程并拉取请求。
- 在流水线上代码复查/迭代 (以及剩余的源代码)。
- 对流水线进行审计跟踪。
- 该流水线的真正的源代码 , 可以被项目的多个成员查看和编辑。
二.Jenkins和GitLab的安装
三.打通GitLab Webhooks与Jenkins流程
pipeline{ agent any stages { stage('Build') { steps{ echo 'This is a build step' } } stage('Test') { steps{ echo 'This is a test step' } } stage('Deploy') { steps{ echo 'This is a deploy step' } } } }
四.接入Jenkinsfile,Dockerfile实现自动发布
FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build COPY *.csproj ./app/ WORKDIR /app RUN dotnet restore COPY . ./ RUN dotnet publish -o out /p:PublishWithAspNetCoreTargetManifest="false" FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS runtime ENV ASPNETCORE_URLS http://+:80 WORKDIR /app COPY --from=build /app/out ./ ENTRYPOINT ["dotnet", "WebApplication_Jenkinsfile.dll"]
pipeline{ agent any stages { stage('Checkout') { steps{ git credentialsId: '85ca7e47-532e-4901-9828-50a8da071d16', url: 'http://xxx.gitlab.com/webapplication_jenkinsfile.git', branch:'master' echo '---This is a Checkout step---' } } stage('Build') { steps{ sh '''cd WebApplication_Jenkinsfile docker rmi -f docker_webapplication_test:1.0 docker build -t docker_webapplication_test:1.0 .''' echo '---This is a Build step---' } } stage('Run') { steps{ sh '''docker rm -f docker_webapplication_test docker run --name docker_webapplication_test -d -p 7489:80 docker_webapplication_test:1.0 ''' echo '---This is a run step---' } } } }
说明:
五.结束总结
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
最终,我决定将代码迁出x86架构!
如今,我们几乎所有软件都建立在 x86 架构之上 ,在互联网漫长的演进过程中,各大公司拼尽全力在迭代上层架构、优化整体性能,开发者们该用的、能用的招儿想必都用上了,接下来呢?如果底层架构不出现大的革新,接下来还有什么方法大幅提升生产力?各位开发者还有其他选择吗? 1 从大型机到 x86 架构,计算的下一个拐点在哪? 上世纪 60 年代,IBM 发布了 System360 这样的大型计算机,促进了人类社会巨大的进步,卫星气象预测、登月等活动都依赖于这样的大型计算机完成。如今,银行的核心系统仍然在运行着这种大型机。但是,这种大型机有一个很大的问题:只有比较富裕的机构才能用得起,比如银行。 于是,上世纪 70 年代,DEC 解决了这个问题,这是一个值得注意的拐点:研发人员用小型机发布了 PDP-11,大幅度降低了大型机的成本,让大量企业能够用得起这样的计算机,这是一次巨大的进步。 随后,英特尔出现了,不光企业能用计算机,个人也能用了,每个人桌面上都有一台电脑。上世纪 70 年代,依赖于英特尔 x86 芯片的 PC 机出现了,其最大的贡献就是让计算机从企业走向个人。 发展至今,几乎所有软...
- 下一篇
Mix PHP V2.2 发布,与 go-micro 深度集成的 PHP 微服务开发框架
Mix PHP是一个基于 Swoole 开发的高性能 PHP 框架,从 2017 年开始经过多年发展收获了很多中小型团队的支持,框架版本也经历了多个版本的迭代: V1.*: 基于 Swoole 的常驻内存型 PHP 高性能框架 V2.0: 基于 Swoole 的 FastCGI、常驻内存、协程三模 PHP 高性能框架 V2.1: 基于 Swoole 4.4+ 单线程协程 PHP 框架 V2.2: 基于 Swoole 4.4+ 单线程协程 PHP 微服务框架 🆕 微服务开发 本次版本更新主要是增加微服务开发相关的组件与开发骨架,从上一次 Mix V2.1 非常激进的切换为单线程协程后[为何从 Reactor+Manager+Worker 多进程改为单线程协程],Mix V2.2 在微服务方面也非常激进的选择了和其他 Swoole 框架截然不同的路径:与 go-micro 微服务生态深度集成,借用 golang 微服务生态的治理工具 Mix Micro 在很多 Swoole 框架自建微服务生态的时候,我认为微服务生态要是能与主流生态直接无缝通信可能更具有实用价值,Mix 从 V2.1 开...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- MySQL8.0.19开启GTID主从同步CentOS8
- 设置Eclipse缩进为4个空格,增强代码规范
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Hadoop3单机部署,实现最简伪集群
- CentOS8安装Docker,最新的服务器搭配容器使用
- Docker快速安装Oracle11G,搭建oracle11g学习环境