创世网站建设 优帮云山西省住房和城乡建设厅门户网官方网站

news/2025/10/3 19:36:01/文章来源:
创世网站建设 优帮云,山西省住房和城乡建设厅门户网官方网站,吉林市百姓网免费发布信息网,wordpress文章两端对齐上一次我们讲了使用Azure DevOps Pipeline实现.Net Core程序的CI。这次我们来演示下如何使用Azure DevOps实现.Net Core程序的CD。实现本次目标我们除了Azure DevOps外还需要#xff1a;一台安装了Docker的主机一个 Docker Hub 账号上一次我们的CI实现了#xff1a;发布编… 上一次我们讲了使用Azure DevOps Pipeline实现.Net Core程序的CI。这次我们来演示下如何使用Azure DevOps实现.Net Core程序的CD。实现本次目标我们除了Azure DevOps外还需要一台安装了Docker的主机一个 Docker Hub 账号上一次我们的CI实现了发布编译单元测试这次我们要实现剩下的几个步骤生成镜像推送镜像部署创建Docker镜像仓库我们生成的镜像需要有个存放的地方。各大云厂商其实都有这种服务这次直接使用Docker Hub提供的公共仓库服务。创建一个仓库名叫azdevoptest。创建Dockerfile我们的代码创建为镜像需要一个Dockerfile来描述如何构建这个镜像。在项目根目录下新建一个文件命名为Dockerfile注意不带任何后缀名。以下为Dockerfile的内容 FROM mcr.microsoft.com/dotnet/core/sdk:3.1-bionic AS build WORKDIR /app COPY /. /app RUN dotnet restore WORKDIR /app/devops_test RUN dotnet publish -o ./out -c Release EXPOSE 5000 ENTRYPOINT [dotnet, out/devops_test.dll] 配置Servic Connections选择ProjectSetting菜单选择Service connections。Service connections用来存储跟外部服务相关的账号密码等信息这里我们需要配置2个service。Docker Hub的信息主机SSH的信息配置Docker Registry service我们的pipeline需要给Docker hub推送镜像所以需要一些必要的信息比如账号密码等信息。点击New Service找到Docker Register项目点击下一步选择DockerHub填写对应的账号密码配置SSH service我们的pipeline在完成镜像推送后需要通过SSH登录到主机运行命令把新的镜像跑起来。填写主机IP端口等信息。修改pipeline上次我们的pipeline已经定义好了CI的步骤这次需要在上次的基础上继续完善CD的功能。BuildAndPush Task找到上次的pipeline选择编辑功能在右边的Task列表里找到DockerTask点击出现配置界面在Container register里选择前面在service connections配置的docker-hub服务。repository填写我们在docker hub上新建的仓库kklldog/azdevoptest 。注意仓库名称要把用户名写全了不然推不上去。tags填写latest 。command选择buildAndPush 。build跟push本是两步操作这里直接合并为一步。SSH Task添加完BuildAndPush Task后同样的方法再次添加SSH Task。SSH service connection里选择前面我们配置好的ssh service。Run 这里选择Commands。Commands 填写需要执行的命令docker rm -f az_devop_testdocker rmi -f kklldog/az_devop_testdocker pull kklldog/az_devop_testdocker run -d -p 5000:5000 --name az_devop_test kklldog/az_devop_test 简单解释下这个命令删除运行的容器删除镜像拉取最新的镜像使用新的镜像运行一个容器。完整的pipeline到此我们的pipeline已经配置好了以下是完整的pipeline.yml代码。# ASP.NET Core (.NET Framework) # Build and test ASP.NET Core projects targeting the full .NET Framework. # Add steps that publish symbols, save build artifacts, and more: # https://docs.microsoft.com/azure/devops/pipelines/languages/dotnet-core trigger: - master pool:vmImage: ubuntu-18.04 variables:solution: **/*.slnbuildPlatform: Any CPUbuildConfiguration: Release steps: - task: DotNetCoreCLI2inputs:command: restore - task: DotNetCoreCLI2displayName: Buildinputs:command: buildprojects: **/*.csprojarguments: --configuration $(buildConfiguration) - task: DotNetCoreCLI2inputs:command: testprojects: **/*Tests/*.csprojarguments: --configuration $(buildConfiguration) - task: Docker2inputs:containerRegistry: docker-hubrepository: kklldog/az_devop_testcommand: buildAndPushDockerfile: **/Dockerfiletags: latest - task: SSH0inputs:sshEndpoint: azvm-sshrunOptions: commandscommands: |docker rm -f az_devop_testdocker rmi -f kklldog/az_devop_testdocker pull kklldog/az_devop_testdocker run -d -p 5000:5000 --name az_devop_test kklldog/az_devop_testreadyTimeout: 20000 运行一下手动运行一个这个pipeline点击pipeline可以看到实时的日志等到最后可以看到每一步都成功了说明我们的pipeline配置成功了。访问一下容器对应的端口我们的网站已经可以访问了。修改一下代码然后提交每次都会自动部署最新的代码到主机。总结以上通过2篇文章简单的介绍了Azure DevOps Pipeline如何实现CICD功能。Azure DevOps Pipeline给我的感觉是比较易用的配置yml其实都是图形化的上手难度会比较小。另外它跟Github有深入的集成可以使用Github的账号直接登录。况且它还是个免费服务大家可以试试。关注公众号一起玩转技术

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

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

相关文章

网站域名备案后公示南宁做网站比较好的公司

目录 1.动态内存分配的原因 2.动态内存函数的介绍 2.1malloc和free函数 2.2calloc函数 2.3realloc函数 3. 常见的动态内存错误 3.1 对NULL指针的解引用操作 3.2 对动态开辟空间的越界访问 3.3 对非动态开辟内存使用free释放 3.4 使用free释放一块动态开辟内存的一部…

10/3

今日下起了大雨,我在家背诵了单词

专注手机网站建设中国工程建设管理协会网站

前言 关于 .NET Core 旧版本的 sdk 介绍可以参看我以前的 这篇 文章。 8 个小时前,.NET Core 项目组释放了 .NET Core 新一轮的 sdk 工具更新,即 RC4 版本 ,这个版本也就是意味着基本功能已经确定了,下个版本应该就是RTM版了&…

后台网站模板html口碑营销的优缺点

Java中的输入输出(I/O)流是用于读取和写入数据的机制。在Java中,I/O流被设计为按照流的方向和数据源/目标类型进行分类。流的方向分为输入流和输出流,而数据源/目标类型则分为字节流和字符流。 流的方向: 输入流&…

推荐一款集成AI能力的数据库管理工具

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Netflix确保数亿用户观影体验的“事件”管理是如何构建与实践的?

在流媒体服务随时可能因系统故障而中断的时代,Netflix 如何确保数亿用户的观影体验始终稳定?本文将揭晓其技术团队的关键实践 —— 从中央 SRE 团队独揽事件管理,到让每个工程师都能主动发起并处理事件的转型之路。…

为什么词嵌入可以和位置编码相加

一、引言 一个非常朴素的直觉是: 词嵌入是语义,位置编码是词的位置。这两者本身是不同的量纲,就跟身高和体重一样,他们之间有关系,而且我们可以找到他们之间的关系,比如BMI,但是直接把身高(cm)和体重(kg)加…

【比赛记录】2025CSP-S模拟赛57

A B C D Sum Rank100 60 15 - 175 8/22A. 开挂 首先我们希望总步数最小,排序后一次使每个数成为大于它的最小的数即可。 然后根据排序不等式,我们希望修改操作尽可能的集中,倒着扫即可。此时需要确定比这个数大的最…

实用指南:软件设计师——04 操作系统

实用指南:软件设计师——04 操作系统pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Mona…

优化排名推广技术网站wordpress 模板 怎么用

在物质世界的繁华背后,隐藏着一个深刻的真理:有形之物的分享会逐渐减少,而无形之物的传递却能不断增值。金钱、货币、银两这些商业领域的实体,往往激发出人类对更多财富的渴望和对资源枯竭的恐惧。这种恐惧源于资源的有限性&#…

移动网站开发工具网站权限怎么设置方法

本篇主要讲Animation 和 Property Animation的使用,最后会讲QQ管家桌面火箭作为例子: 在Android中开发动效有两套框架可以使用,分别为 Animation 和 Property Animation; 相对来说,Animator比Animation要强大太多&…

实用指南:洛谷题解——C语言(9.17——9.19)

实用指南:洛谷题解——C语言(9.17——9.19)2025-10-03 19:14 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: …

怎样保证网站的安全性网站建设没业务

再谈编译链接 C函数重载与编译链接-CSDN博客 之前我已经写过文章简单介绍了编译链接要做的一些操作。现在为了能更好的理解我们平时的开发环境,我会在Linux系统上完整地走一遍流程。 环境描述 我们使用普通用户在Linux上进行操作,先写一段测试代码。 …

多模态大语言模型OISA - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

微信公众号的网站品牌推广策略有哪几种

几个星期前几个月前,我正在寻找如何为Oracle Cloud项目设计新的REST API。 我计划要做的事情之一就是使用Marc Hadley在Jersey 1.x中创建的声明性链接注入。 可悲的是这并没有被转发移植然而,这样一个快速的聊天项目带动和我承担了使代码最新的小中型工作…

电力网站怎么做随州网站建设便宜

Enum是一个特殊的类. 我们不能以class Xxx extends Enum的方式手动继承, 必须写成enum Xxx的形式; 然而这段枚举类的定义在编译之后又变回了class Xxx extends Enum. 一、类定义 public abstract class Enum<E extends Enum<E>>implements Comparable<E>, …

sk06.【scikit-learn基础】--『监督学习』之决策树 - 教程

sk06.【scikit-learn基础】--『监督学习』之决策树 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consola…

20251001国庆模拟

Part 1 题目列表P7075 [CSP - S2020] 儒略日 P7076 [CSP - S2020] 动物园 P7077 [CSP - S2020] 函数调用 P7078 [CSP - S2020] 贪吃蛇Part 2 考试时间线 8:02 开题, 仅仅读了 10 分钟 T1 题目,就得出结论,大模拟。 …

线段树合并 [POI 2011] ROT-Tree Rotations

波兰人太神秘了,竟能出出来如此题目。 题意 给一棵树(读入不太寻常,这个容易处理,忽略不计), 每个叶子节点有一个权值,我们可以选择交换一些节点的左右子树(保证是二叉树,且要么是叶子要么左右子树都存在)。 …