Dockerfile+Jenkinsfile+GitLab轻松实现.NetCore程序的CI&CD
一.相关介绍
- 自动地为所有分支创建流水线构建过程并拉取请求。
- 在流水线上代码复查/迭代 (以及剩余的源代码)。
- 对流水线进行审计跟踪。
- 该流水线的真正的源代码 , 可以被项目的多个成员查看和编辑。
二.Jenkins和GitLab的安装
三.打通GitLab Webhooks与Jenkins流程
![](https://img2020.cnblogs.com/blog/645287/202005/645287-20200526172115897-1626472093.png)
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'
}
}
}
}
然后将程序文件push到Gitlab上
![](https://img2020.cnblogs.com/blog/645287/202005/645287-20200526172129295-1881913870.png)
![](https://img2020.cnblogs.com/blog/645287/202005/645287-20200526172146146-200210996.png)
![](https://img2020.cnblogs.com/blog/645287/202005/645287-20200526172158118-1386838445.png)
![](https://img2020.cnblogs.com/blog/645287/202005/645287-20200526172216629-295045152.png)
![](https://img2020.cnblogs.com/blog/645287/202005/645287-20200526172225873-1759431838.png)
![](https://img2020.cnblogs.com/blog/645287/202005/645287-20200526172255611-1503245636.png)
![](https://img2020.cnblogs.com/blog/645287/202005/645287-20200526172326909-1951570449.png)
![](https://img2020.cnblogs.com/blog/645287/202005/645287-20200526172343590-996903074.png)
![](https://img2020.cnblogs.com/blog/645287/202005/645287-20200526172352078-1325638572.png)
![](https://img2020.cnblogs.com/blog/645287/202005/645287-20200526172401283-510751558.png)
![](https://img2020.cnblogs.com/blog/645287/202005/645287-20200526172410622-557122095.png)
![](https://img2020.cnblogs.com/blog/645287/202005/645287-20200526172421094-567360672.png)
![](https://img2020.cnblogs.com/blog/645287/202005/645287-20200526172451186-1005315674.png)
![](https://img2020.cnblogs.com/blog/645287/202005/645287-20200526172517730-1663743659.png)
![](https://img2020.cnblogs.com/blog/645287/202005/645287-20200526172504610-380040609.png)
![](https://img2020.cnblogs.com/blog/645287/202005/645287-20200526172533173-268158859.png)
![](https://img2020.cnblogs.com/blog/645287/202005/645287-20200526172546782-379257972.png)
![](https://img2020.cnblogs.com/blog/645287/202005/645287-20200526172557196-1675689977.png)
![](https://img2020.cnblogs.com/blog/645287/202005/645287-20200526172608272-1861073842.png)
![](https://img2020.cnblogs.com/blog/645287/202005/645287-20200526172618309-2111309376.png)
![](https://img2020.cnblogs.com/blog/645287/202005/645287-20200526172634024-689896989.png)
![](https://img2020.cnblogs.com/blog/645287/202005/645287-20200526172719905-1762282456.png)
四.接入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 : docker_webapplication_test:1.0
'''
echo '---This is a run step---'
}
}
}
}
说明:
![](https://img2020.cnblogs.com/blog/645287/202005/645287-20200526172801892-2032185793.png)
![](https://img2020.cnblogs.com/blog/645287/202005/645287-20200526172816375-536979815.png)
![](https://img2020.cnblogs.com/blog/645287/202005/645287-20200526172829075-1922203931.png)
![](https://img2020.cnblogs.com/blog/645287/202005/645287-20200526172837755-1004345609.png)
![](https://img2020.cnblogs.com/blog/645287/202005/645287-20200526172846738-311883527.png)
![](https://img2020.cnblogs.com/blog/645287/202005/645287-20200526172853777-216384361.png)
Dockerfile+Jenkinsfile+GitLab轻松实现.NetCore程序的CI&CD的更多相关文章
- 使用 Gitlab CI/CD 实现自动化发布站点到 IIS
说明 这里先介绍下两个东西 CI/CD.GitLab Runner,当然在此之前你需要对 git 有所了解,关于 git 这里不做说明,可以自行百度. 首先介绍 CI/CD :随着我们开发方式的转变, ...
- .NetCore 配合 Gitlab CI&CD 实践 - 单体项目
前言 上一篇博文 .NetCore 配合 Gitlab CI&CD 实践 - 开篇,主要简单的介绍了一下 GitLab CI 的持续集成以及持续部署,这篇将通过 GitLab CI 发布一个 ...
- 用DotTrace 来分析.NET-Core程序
1. 前言 看园子里面讲dotTrace 的文章不多,最近也有这方面的需要,于是去搜索了一下,.NET 性能分析方面的工具.目的呢,主要是想发现我的代码中,哪些代码占用了最多时间,来进行优化.主要 ...
- jenkins + supervisor + ansible 实现netcore程序的多机一键部署
上一篇我们简单的说到了使用jenkins+supervisor实现了一个单机版的多副本部署,但是在更多的场景下还是需要netcore程序的多机一键部署,那么多 机器间如何分发呢? 肯定不能使用scp这 ...
- Asp.NetCore程序发布到CentOs(含安装部署netcore)--最佳实践(二)
Asp.NetCore程序发布到CentOs(含安装部署netcore)--最佳实践(一) 接上一篇 3. Nginx配置反向代理 3.1 cnetos 安装nginx 首先,我们需要在服务器上安装N ...
- Asp.NetCore程序发布到CentOs(含安装部署netcore)--最佳实践(一)
环境 本地 win7 服务器:Virtual Box 上的Centos ssh工具: Xshell 文件传输: xftp 1.在本地创建asp.net core应用发布 1.1 使用Vs2017 新建 ...
- 使用PowerShell自动部署ASP.NetCore程序到IIS
Windows PowerShell 是一种命令行外壳程序和脚本环境,使命令行用户和脚本编写者可以利用 .NET Framework的强大功能.有关于更多PowerShell的信息,可参阅百度词条 接 ...
- .net core i上 K8S(四).netcore程序的pod管理,重启策略与健康检查
上一章我们已经通过yaml文件将.netcore程序跑起来了,但还有一下细节问题可以分享给大家. 1.pod管理 1.1创建pod kubectl create -f netcore-pod.yaml ...
- .net core i上 K8S(二)运行简单.netcore程序
上一章我们搭建了k8s集群,这一章我们开始在k8s集群上运行.netcore程序 1.kubectl run 在我的Docker系列教程里,我曾往docker hub中推送过一个镜像“webdokce ...
随机推荐
- 运用shell脚本 执行sftp,ftp命令
sftp文件上传(从本地上传到远程) #!/bin/bash #远程上传文件测试 if [ $# -ne 2 ] then echo "miss arguments" echo & ...
- [Docker]compose一键部署nginx
Docker-compose部署nginx 创建配置文件 mkdir -p /usr/local/docker/nginx cat > /usr/local/docker/nginx/docke ...
- P2542 【[AHOI2005]航线规划】
P2542 [[AHOI2005]航线规划] 一个无向图,m个操作 删去一条边 给定两个点,求有多少边使得如果这条边不存在,给定的两个点不连通 一般这种删边的题目,考虑逆序加边处理 在删完的图中,任意 ...
- 一文带你学会java的jvm精华知识点
前言 本文分为20多个问题,通过问题的方式,来逐渐理解jvm,由浅及深.希望帮助到大家. 1. Java类实例化时,JVM执行顺序? 正确的顺序如下: 1父类静态代码块 2父类静态变量 3子类静态代码 ...
- 网络流 I - Fox And Dinner CodeForces - 510E
Fox Ciel is participating in a party in Prime Kingdom. There are n foxes there (include Fox Ciel). T ...
- java读源码 之 map源码分析(HashMap,图解)一
开篇之前,先说几句题外话,写博客也一年多了,一直没找到一种好的输出方式,博客质量其实也不高,很多时候都是赶着写出来的,最近也思考了很多,以后的博客也会更注重质量,同时也尽量写的不那么生硬,能让大家 ...
- java基础篇 之 位运算符
按位操作符 按位操作符用来操作基本数据类型中的单个"比特"(bit),即二进制位.按位操作符会对两个参数中对应的位执行布尔代数运算,并最终生成一个结果. 我们常用的按位操作 ...
- mybatis与hibernate运行流程比较
hibernate长时间没用,感觉生疏了,正好借这篇文章整合下知识,顺便复习比较下两种框架. 概述: Mybatis和hibernate不同,它不完全是一个ORM框架,因为MyBatis需要程序员自己 ...
- 玩转FPGA边缘视觉——4k视频图像抓取
随着现代图像及视频处理技术的不断发展,人们对图像处理提出了新的要求,最近几年,图像的分辨率和扫描频率都有了较大范围的提升,1080P分辨率的视频已经非常流行,2K甚至4K分辨率的图像也在火热发展中. ...
- 【Scala】关于集合的各种知识点
目录 映射Map 不可变Map 概述 操作实例 可变Map 概述 操作实例 Map的遍历 for循环遍历 格式 操作实例 模式匹配遍历 格式 操作实例 Tuple 元祖 概述 定义格式 获取元素方法 ...