Azure DevOps+Docker+Asp.NET Core 实现CI/CD(二.创建CI持续集成管道)

 前言

本文主要是讲解如何使用Azure DevOps+Docker 来实现持续集成Asp.NET Core项目(当然 也可以是任意项目).

上一篇:

Azure DevOps+Docker+Asp.NET Core 实现CI/CD(一 .简介与创建自己的代理池)

觉得有帮助的朋友~可以左上角点个关注,右下角点个推荐

今天我们废话不多说 直接开始正文 

 

正文

 

昨天我们创建了自己的代理服务器(其实也可以用Azure提供的免费代理服务器,就是要排队,而且比较慢,限制比较多..)

今天我们来讲讲如何创建自己的持续集成管道.

今天大致的流程图如下:

  

1. 创建私有Docker Registry

首先我们需要到自己需要持续集成的服务器上 安装Docker Registry来获取我们的docker image

安装Docker..我这就不说了.主要讲讲如何安装Docker Registry

直接拉取registry镜像:

docker pull registry

查看是否存在镜像:

 

 

拉取到镜像后,我们直接Run 命令:

docker run -itd -v /data/registry:/var/lib/registry -p 8082:5000 --restart=always --name registry registry:latest

这里的8082是你映射外网的端口.

运行命令查看是否运行成功:

curl http://127.0.0.1:8082/v2/_catalog

 

这里显示{}就表示运行成功了,我这个是因为有项目了...所以打码了..

(注意:正式环境的Docker Registry部署请设置用户密码,毕竟是对外的端口)

 

2. 创建Service connections(服务连接)

点击项目下的配置按钮:

 

 

找到Service connections

创建一个新的连接, 这里我们选择上一步创建的Docker Registry

 

 填写刚刚创建好的Docker Registry地址与密码.

 

 

这一步就算完成了,下一步我们将来使用它.

 

3. 创建持续集成管道

我们找到Pipelines菜单

 

 点击创建新的管道

 

 

 

 

选择自己的项目代码托管的地方,这里我们选择上篇文章代码提交的地方Azure Repos Git

 

选中自己需要集成的项目:

 

配置管道,我们选择Docker

 

选择项目中的dockerFile文件位置:

 

我测试项目的DockerFile文件如下,大家可自行参考(纯空项目啥也没有):

FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build
RUN mkdir -p /app
WORKDIR /src
COPY . .
RUN dotnet restore "WebApplication1.csproj"
RUN dotnet build "WebApplication1.csproj" -c Release -o /appFROM build AS publish
RUN dotnet publish "WebApplication1.csproj" -c Release -o /appFROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "WebApplication1.dll"]

 

 编辑配置我们的Pipeline YAML(这里开始,很重要):

 

将默认的Pool名改为我们昨天自行创建配置的Pool

 

修改为

 

 创建持续集成的步骤Steps,点击右边的按钮可以打开图形化配置界面

 

 这里我们添加三个步骤如下(这是我自己的配置,各位请通过下面的图形化配置 添加自己的步骤):

    steps:- task: Docker@2inputs:containerRegistry: 'TestDocker'command: 'login'- task: Docker@2inputs:containerRegistry: 'TestDocker'repository: '$(Build.Repository.Name)'command: 'build'Dockerfile: '$(Build.SourcesDirectory)/WebApplication1/WebApplication1/Dockerfile'- task: Docker@2inputs:containerRegistry: 'TestDocker'repository: '$(Build.Repository.Name)'command: 'push'

登陆,buid 最后Push我们的镜像.

 

 

 

 添加好步骤之后,我们直接保存我们的管道.

 

4. 提交代码查看是否持续集成

我们修改一下首页的代码,并提交到Master主干:

 

 可以发现,我们的管道已经监控到了主干的变化,开始运行

 

 

 

 

 可以看到,管道自动push了版本号为42的镜像.

我们上持续集成服务器看看,有没有.

 

持续集成成功!

 

后记

我们下一篇来讲如何CD 持续部署与持续交付.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/308386.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

7-35 城市间紧急救援 (25 分)(思路加详解)

一:题目 作为一个城市的应急救援队伍的负责人,你有一张特殊的全国地图。在地图上显示有多个分散的城市和一些连接城市的快速道路。每个城市的救援队数量和每一条连接两个城市的快速道路长度都标在地图上。当其他城市有紧急求助电话给你的时候&#xff0…

程序员修神之路--那些分布式事务解决方案

亲爱的,关注我吧为了保证分布式环境下数据强一致性,需要引入分布式事务,而分布式事务由于网络环境的不确定性,天生就很难实现。具体可以见上一篇。[分布式下,我想要强一致性]为了保证分布式事务的正确性,目前互联网领域…

7-36 社交网络图中结点的“重要性”计算 (30 分)(思路加详解)兄弟们PTA乙级题目冲起来

一:题目 在社交网络中,个人或单位(结点)之间通过某些关系(边)联系起来。他们受到这些关系的影响,这种影响可以理解为网络中相互连接的结点之间蔓延的一种相互作用,可以增强也可以减…

分享几个亲测有效的高效工作技巧

这里是Z哥的个人公众号每周五11:45 按时送达当然了,也会时不时加个餐~我的第「154」篇原创敬上大家好,我是Z哥。在工作中,你会发现有的小伙伴每天看上去很忙,但是好像产出的成果比旁边看上去工作轻松甚至有…

7-37 模拟EXCEL排序 (25 分)(思路+详解+超时解决 兄弟们冲呀呀呀呀呀呀)

一:题目 Excel可以对一组纪录按任意指定列排序。现请编写程序实现类似功能。 输入格式: 输入的第一行包含两个正整数N(≤10 5 ) 和C,其中N是纪录的条数,C是指定排序的列号。之后有 N行,每行包含一条学生纪录。每条学生纪录由学号…

Azure DevOps+Docker+Asp.NET Core 实现CI/CD(三.实现CD持续部署管道)

前言本文主要是讲解如何使用Azure DevOpsDocker 来实现持续集成Asp.NET Core项目(当然 也可以是任意项目).上一篇:Azure DevOpsDockerAsp.NET Core 实现CI/CD(一 .简介与创建自己的代理池)Azure DevOpsDockerAsp.NET Core 实现CI/CD(二.创建CI持续集成管道)觉得有帮助的朋友~可…

7-1 寻找大富翁 (25 分)(思路加详解+两种做法(一种优先队列,一种vector容器))

一:题目 胡润研究院的调查显示,截至2017年底,中国个人资产超过1亿元的高净值人群达15万人。假设给出N个人的个人资产值,请快速找出资产排前M位的大富翁。 输入格式: 输入首先给出两个正整数N(≤10 6 )和M…

7-39 魔法优惠券 (25 分)(思路加解释 用容器做的)加油兄弟们

一:题目 在火星上有个魔法商店,提供魔法优惠券。每个优惠劵上印有一个整数面值K,表示若你在购买某商品时使用这张优惠劵,可以得到K倍该商品价值的回报!该商店还免费赠送一些有价值的商品,但是如果你在领取…

.NET Core Web APi大文件分片上传研究

【导读】前两天发表利用FormData进行文件上传.NET和.NET Core Web APi FormData多文件上传,然后有人问要是大文件几个G上传怎么搞,常见的不就是分片再搞下断点续传,动动手差不多也能搞出来,只不过要深入的话,考虑的东西…

ciclop读音,购机必备,15种 3D扫描 设备 优缺点汇总

原标题:购机必备,15种 3D扫描 设备 优缺点汇总小编总结了市场上常见的15种,可用于3D扫描的软件和设备,并详细列出有关它们的价格、优缺点等特征,以供大家在购机时有比较实用性参考:一、软件选择根据研究表明…

7-40 奥运排行榜 (25 分)(详解+思路+map+vector做法)兄弟们冲压呀呀呀呀呀呀呀

一:题目 每年奥运会各大媒体都会公布一个排行榜,但是细心的读者发现,不同国家的排行榜略有不同。比如中国金牌总数列第一的时候,中国媒体就公布“金牌榜”;而美国的奖牌总数第一,于是美国媒体就公布“奖牌…

常哥带你认识NoSQL和Redis的强大

各位朋友,这篇文章是针对Redis快速了解的内容,为了学好Redis在这里首先跟大家聊聊NoSQL相关内容,有了概念和方向后,我们再学习Redis大家会感觉得心应手。一NoSQL你必知的那些事儿1什么是NoSQL?NoSQL是Not Only SQL的缩写&#xf…

java当中用UDP实现相互交流

一:引言 实现一方 到另一方可以发送信息,而另一方也能回复信息。这里用到了多线程,开辟两条不同的执行路径,一个执行接收信息,一个执行发送信息,但其端口号 要对应 ,即一个发送端口&#xff0c…

7-41 PAT排名汇总 (25 分)(详解+思路+重写sort函数)兄弟们冲呀呀呀呀呀呀呀

一:题目 计算机程序设计能力考试(Programming Ability Test,简称PAT)旨在通过统一组织的在线考试及自动评测方法客观地评判考生的算法设计与程序设计实现能力,科学的评价计算机程序设计人才,为企业选拔人才…

使用 Azure Web 应用防火墙拦截黑客攻击

点击上方蓝字关注“汪宇杰博客”导语开发或运维过网站的朋友总免不了遇到不怀好意的访客。互联网上有许多全自动黑客工具及脚本,可以扫描你的网站是否有已知安全漏洞,并全自动发起攻击,企图夺取服务器控制权。尽管我们可以在编写网站程序的时…

libgo 支持mysql,loadrunner通过使用libmysql.dll完成mysql的测试-Go语言中文社区

【1】需要使用到MySQL的libmysql.dll动态链接库,因此需要安装MySQL;注:本地安装的MySQL最好和MySQL数据库服务器上的版本一致;(本次使用的是MYSQL 5.6)【2】LoadRunner选择“CVuser”协议;【3】选择“File”→“Add Fi…

Java使用TCP实现群聊 聊天室(多线程和tcp的使用)

一:引言: 显示结果在控制台显示,未能实现图形界面的结合 二:上码 1.服务端 package com.wyj.talkhome; /** * 实现一个用户可以接发多条消息 * * */ import java.io.DataInputStream; import java.io.DataOutputStream; imp…

Azure WAF 导致网站无法登录 AAD 的解决办法

点击上方蓝字关注“汪宇杰博客”导语昨天写了篇《使用 Azure Web 应用防火墙拦截黑客攻击》然后自爆了,我博客的后台管理被 WAF 干掉了。我996了半小时,终于让 Azure WAF 放过了被误杀的平民。今天把方法分享给大家。误杀平民我的博客后台配置了 Azure A…

Java用TCP手写聊天室 可以 私聊版加群聊版

一:引言 想要私聊必须有规定的格式:名字:要说的话 二:上码 1.服务端 package com.wyj.talkhome; /** * 实现一个用户可以接发多条消息 * * */ import java.io.DataInputStream; import java.io.DataOutputStream; import ja…

macbook oracle 工具,Navicat for Oracle Mac 四种实用工具

Navicat for Oracle Mac 凭借精心设计的用户界面,可以简便快捷地以安全且简单的方法创建、组织、访问和共享信息,优化 Oracle 管理。除了 Oracle 的核心功能外,Navicat for Oracle Mac 也提供了一些丰富的增强功能,包括数据模型工…