一,引言

  起因是前两天项目上做测试,需要我把写好的基于.NET 5 的 Web 测试程序作成 Docker 镜像。当我在本地验证完功能后,准备利用 Docker 构建应用程序镜像的时候,发现系统不支持安装 Docker Desktop。这下看来只能利用Azure DevOps 自动创建 Docker 镜像了。

二,正文

1,创建 Azure Container Registry 服务

前置条件,我们得先手动创建 镜像存储库。我们登录到 Azure Portal 上,点击 “Create a resource”,搜索 “Container Registry”

输入相关参数

Registry name:“appconfig”

Location:‘Asia“

SKU:”Basic“

再次检查一下输入或者选择的参数,并且点击 ”Review + create“

创建前的预校验完成后,点击 ”Create“ 创建 Azure Container Registry

等待创建完成后,我们就可以转到资源查看当前 Container Registry 的相关信息了

2,Azure DevOps 设置Pipeline

首先得先创建一个新的项目 ”CnBateBlogWeb“

Project name:”CnBateBlogWeb“

创建完项目后,选择 Pipeline ,点击 ”Create Pipeline“

选择 ”GitHub YAML“(根据自己实际的项目存储的代码库选择)

连接到自己的测试代码所在的 github 账号,作为演示,选择 "CnBateBlogWeb" 的代码库

接下啦,我们需要配置当前pipeline,目前我们需要选择先构建项目,然将 images 推动到 Azure Container Registry,

如果找到相似的模板,需要点击箭头所指的地方 ”Show more“ 展示更多

选择 Docker (Build and push an images to Azure Container Registry)

选择 Azure 订阅

填写相关参数

Container registry 选择:”appconfig“

Image Name :”cnbateblogweb.net.demo“

点击 ”Validate and configure“ 验证和配置 pipeline.yaml

Azure DevOps 为我们生成好了 pipeline 的配置项(配置内容不是今天文章讲解的重点),点击 ”Save and run“

点击 ”Run“

等下构建中,我们可以通过日志查看当前构建信息

等构建完成后,我们回到Azure Portal 中查看当前存储库中的镜像信息,选择 "Services =》Repositories"

当前镜像的详细信息(Tags 等于3,是因为我在运行Azure DevOps 的Pipeline 的时候,取消了两次构建,并且Tag 为当前Pipeline 的Build.BuildId)

最后,我们需要配置开启使用 ”username“ & ”password“ 作为docker 的登录信息登录到 Azure Container Registry 上

选择 ”Setting =》Access keys“,开启 ”Admin user“

3,部署 Images 到 Azure Web App

Azure Portal 选择 "Web App",并输入相关参数

Name:”cnbateblogweb“

Publish 选择:”Docker Container“

Operation System:”Linux“

Region:”East Asia“

Sku and size :如果是测试、学习,尽量免费的

配置完相关参数后,点击 ”Next:Docker“

Image Source 选择 :”Azure Container Registry“

Registry 选择:”appconfig“

Image 选择:”cnbateblogwebnetdemo“

Tag 选择:”3“

输入完相关参数后,点击 ”Review + create“

点击 ”Create“ 进行创建

等待创建完成后,点击 ”Go to resource“ 转到该资源

接下来,我们需要配置环境变量参数 "Location",“ASPNETCORE_ENVIRONMENT”,“WEBSITES_PORT”

注意:"Location",“ASPNETCORE_ENVIRONMENT” 是我们应用程序中需要使用到的,而 "WEBSITES_PORT" 是需要自定义镜像映射使用的端口 “9021”

配置完 Azure App Service 的环境变量后,我们复制 URL 在浏览器中尝试访问

OK,成功!!!!*★,°*:.☆( ̄▽ ̄)/$:*.°★* 。‍

Azure App Service(一)利用Azure DevOps Pipeline 构建镜像,部署应用程序的更多相关文章

  1. 如何将Azure DevOps中的代码发布到Azure App Service中

    标题:如何将Azure DevOps中的代码发布到Azure App Service中 作者:Lamond Lu 背景 最近做了几个项目一直在用Azure DevOps和Azure App Servi ...

  2. Azure DevOps(二)利用Azure DevOps Pipeline 构建基础设施资源

    一,引言 上一篇文章记录了利用 Azure DevOps 跨云进行构建 Docker images,并且将构建好的 Docker Images 推送到 AWS 的 ECR 中.今天我们继续讲解 Azu ...

  3. Azure Front Door(一)为基于.net core 开发的Azure App Service 提供流量转发

    一,引言 之前我们讲解到使用 Azure Traffic Manager.Azure LoadBalancer.Azure Application Gateway,作为项目的负载均衡器来分发流量,转发 ...

  4. 改善Azure App Service托管应用程序性能的几个技巧

    本文介绍了几个技巧,这些技巧可以改善Azure App Service托管应用程序的性能.其中一些技巧是你现在就可以进行的配置变更, 而其他技巧则可能需要对应用程序进行一些重新设计和重构. 开发者都希 ...

  5. 【应用服务 App Service】Azure App Service 中如何安装mcrypt - PHP

    问题描述 Azure App Service (应用服务)如何安装PHP的扩展 mcrypt(mcrypt 是php里面重要的加密支持扩展库) 准备条件 创建App Service, Runtime ...

  6. 【应用服务 App Service】在Azure App Service中使用WebSocket - PHP的问题 - 如何使用和调用

    问题描述 在Azure App Service中,有对.Net,Java的WebSocket支持的示例代码,但是没有成功的PHP代码. 以下的步骤则是如何基于Azure App Service实现PH ...

  7. 【应用服务 App Service】当遇见某些域名在Azure App Service中无法解析的错误,可以通过设置指定DNS解析服务器来解决

    问题情形 当访问部署在Azure App Service中的应用返回 "The remote name could not be resolved: ''xxxxxx.com'" ...

  8. 【Azure App Service】C#下制作的网站,所有网页本地测试运行无误,发布至Azure之后,包含CHART(图表)的网页打开报错,错误消息为 Runtime Error: Server Error in '/' Application

    问题描述 C#下制作的网站,所有网页本地测试运行无误,发布至Azure之后,包含CHART(图表)的网页打开报错,错误消息为 Runtime Error: Server Error in '/' Ap ...

  9. 【Azure App Service For Container】创建ASP.NET Core Blazor项目并打包为Linux镜像发布到Azure应用服务

    欢迎使用 Blazor!Blazor 是一个使用 .NET 生成交互式客户端 Web UI 的框架: 使用 C# 代替 JavaScript 来创建信息丰富的交互式 UI. 共享使用 .NET 编写的 ...

随机推荐

  1. node os env reader

    node os env reader node-os-env-reader.js #!/usr/bin/env node "use strict"; /** * * @author ...

  2. TypeScript & WebAssembly

    TypeScript & WebAssembly WASM (module (func (param $lhs i32) (param $rhs i32) (result i32) local ...

  3. OTA development

    OTA development OTA update OTA Over the Air / 无线下载 https://en.wikipedia.org/wiki/Over-the-air_progra ...

  4. Vue SSR in Action

    Vue SSR in Action https://ssr.vuejs.org/ https://ssr.vuejs.org/api/ https://ssr.vuejs.org/guide/data ...

  5. Basic认证时添加请求头

    http Basic认证 http协议定义的一种认证方式,将客户端id和客户端密码按照"客户端ID:客户端密码"的格式拼接,并用base64编 码,放在header中请求服务端, ...

  6. 逆向基础 C++ Primer Plus 第二章 开始学习C++

    C++ Primer Plus 第二章 开始学习C++ 知识点梳理 本章从一个简单的C++例子出发,主要介绍了创建C++程序的步骤,以及其所包含的预处理器编译指令.函数头.编译指令.函数体.注释等组成 ...

  7. std和stl的关系

    [前言]在写程序时,虽然一直这么用,有点疑惑为甚么引入了头文件.h还要在加上using namespace std?例如: 1 #include<iostream> 2 using nam ...

  8. SpringBoot(九):SpringBoot集成Mybatis

    (1)新建一个SpringBoot工程,在pom.xml中配置相关jar依赖 贴代码: <!--加载mybatis整合springboot--> <dependency> &l ...

  9. 后端程序员之路 59、go uiprogress

    gosuri/uiprogress: A go library to render progress bars in terminal applicationshttps://github.com/g ...

  10. JUC-ThreadLocal

    目录 ThreadLocal ThreadLocal测试 ThreadLocal类结构 前言 多线程访问同一个共享变量的时候也别容易出现并发问题,特别是在多线程需要对一个共享变量进行写入的时候.为了保 ...