首页 > 其他分享 >基于Azure DevOps 的 CICD 项目部署(.Net Core)

基于Azure DevOps 的 CICD 项目部署(.Net Core)

时间:2024-11-06 21:08:03浏览次数:1  
标签:Core name -- CICD DevOps echo 镜像 docker imageid

  1. 使用微软的 来进行CICD 链接:https://dev.azure.com
  2. 创建新项目

    3.创建项目名称

    4.选择仓库地址



    5.选择空模板

    6.创建代理池


    7.按照以下步骤把代理部署到服务器上


    8.连接你的服务器
    9.创建新的文件夹
    mkdir myange
    cd myagent
    10.可通过链接下载文件
    wget https://vstsagentpackage.azureedge.net/agent/3.238.0/vsts-agent-win-x64-3.238.0.zip
    11.创建新的文件夹进入并解压缩
    mkdir myagent && cd myagent
    tar zxvf ~/Downloads/vsts-agent-linux-x64-3.238.0.tar.gz
    12.解压完成执行 ./config.sh
    13.这里可能会出现一些错误提示:Must not run with sudo 运行下面代码
    export AGENT_ALLOW_RUNASROOT="1"
    ./config.sh
    14.先创建 Toeken 点击右上角小人


    15.现在根据以下步骤执行,运行代理

    这里显示绿色就是开启状态
  3. 部署CI部分




    17.现在要创建阿里云镜像服务




    18.配置Docker 拉取和推送 根据以下两个步骤进行拉取和推送的配置



    19.配置完成后点上方的保存,运行CI部分,时间会很长,耐心等待,如出现问题可以百度等。
    20.现在配置CD部分

    21.创建空模版

    22.选中你的CI部分

    23.补充要执行的任务

    24.创建一个SSH用于连接服务器





    25.其中 registry.cn-hangzhou.aliyuncs.com/TextInfor/wudia 是需要更改为阿里云的 公网地址
    1,给镜像起名,在判断是否有用这个容器,有就停了在删除,再看镜像有没有,有就删了,创建一个文件夹写日志,主要的就是在服务器拉文件,在运行文件
点击查看代码
#!/bin/bash
name="webapp01"
cid=`docker inspect --format '{{.Id}}' ${name} 2>/dev/null`
if [[ ${#cid} -gt 0 ]]; then
   docker stop $name
   docker rm $name
   echo "successed deleted container ${name}"
fi
# 删除旧镜像
imageid=$(docker images --filter "reference=$name" --format "{{.ID}}" 2>/dev/null)
if [[ -n "$imageid" ]]; then
    # 检查是否有任何正在使用该镜像的容器
    containers_using_image=$(docker ps -a --filter "ancestor=$imageid" --format "{{.ID}}")
    if [[ -n "$containers_using_image" ]]; then
        echo "以下容器正在使用镜像 ${imageid}:"
        echo "$containers_using_image"
        echo "停止并删除这些容器以删除镜像。"
    else
        docker rmi -f $imageid
        if [[ $? -eq 0 ]]; then
            echo "成功删除旧镜像 ${imageid}"
        else
            echo "删除镜像 ${imageid} 失败,请检查是否有足够的磁盘空间或其他问题。"
        fi
    fi
else
    echo "镜像 ${name} 不存在"
fi
docker image prune -a -f
# 创建日志文件夹
logfile="/var/log/servicelog/$name"
if [[ ! -d "$logfile" ]]; then
    mkdir -p "$logfile"
    echo "已成功创建日志文件夹 ${logfile}"
else
    echo "日志文件夹 ${logfile} 已存在"
fi
#从阿里云的镜像仓库拉取
docker pull registry.cn-hangzhou.aliyuncs.com/TextInfor/wudia

#运行自己的容器
docker run -it -d -p 8002:80 --name webapp01 registry.cn-hangzhou.aliyuncs.com/TextInfor/wudia --privileged=true 			

docker logs webapp01
26.配置完成之后返回这级 ![](/i/l/?n=24&i=blog/3469826/202409/3469826-20240906194340342-844835712.png) 27.开启触发器CI触发CD ![](/i/l/?n=24&i=blog/3469826/202409/3469826-20240906194407476-1027266201.png) 28.开启运行即可 ![](/i/l/?n=24&i=blog/3469826/202409/3469826-20240906194428679-1206714797.png)

标签:Core,name,--,CICD,DevOps,echo,镜像,docker,imageid
From: https://www.cnblogs.com/candy18/p/18400859

相关文章

  • DevOps业务价值流构建指南:以项目立项为起点
    一、前言业务价值流,作为公司运营的核心驱动力,其独特性源于每家公司的运营模式与工作流程的差异。尽管无法直接套用其他公司的业务流程,但我们可以从中汲取灵感与见解。正是这份独特性,让许多人在撰写业务价值流时感到挑战重重,然而,这恰恰凸显了其重要性。一个体系化、可执行的业......
  • EF Core 仓储模式
    数据库:SqlServer为例安装包: 数据库连接DbContextpublicclassTestDbContext:DbContext{publicTestDbContext(DbContextOptions<TestDbContext>options):base(options){}publicDbSet<User>Users{get;set;}}注册数据库上下文builder.S......
  • .Net Core NPOI 导出多级表头
     想要导出这样的表格 数据准备格式   附上源码1usingNPOI.HSSF.UserModel;2usingNPOI.SS.UserModel;3usingNPOI.SS.Util;4usingSystem.Data;5usingSystem.Text.RegularExpressions;67namespaceTestConsoleApp8{9//......
  • 如何使用nssm将asp.net core/.net6/.net8的webapi项目、mvc项目、控制台项目等注册为w
    nssm工具可以将asp.netFramework、asp.netcore、net6、.net8、.net10及后续本的的webapi项目、mvc项目、控制台项目、winform项、WPF项目等注册为windows服务。不仅限于上面这些,nssm可以将所有windows可执行文件注册为windows服务。下面,使用nssm将asp.net8的webapi项目注册为w......
  • CentOS 7 下安装部署.NET Core多版本环境
    文章目录一、前言1、什么时候需要配置多环境?2、环境信息二、部署过程1、SDK下载&安装基础依赖2、配置环境入口三、问题一、前言1、什么时候需要配置多环境?.NETCore作为.NET的开源版本,可以说是非常拥抱开源了,更新的力度也非常给力。却也从开源世界学了点坏东西,那......
  • .net core 项目使用log4net
    引入nuget包 1.增加一个log4Net.config的文件<?xmlversion="1.0"encoding="utf-8"?><log4net><appendername="DebugAppender"type="log4net.Appender.DebugAppender"><layouttype="log4n......
  • .net core 使用定时任务 quartz.net 实例
    项目是core3.1的 只用引用一个包就可以了引用配置Quartz首先创建一个任务工厂publicclassCronJobFactory:IJobFactory{privatereadonlyIServiceProvider_serviceProvider;publicCronJobFactory(IServiceProviderserviceProvider){_ser......
  • 在不受支持的 Mac 上安装 macOS Sequoia (OpenCore Legacy Patcher v2.1.0)
    在不受支持的Mac上安装macOSSequoia(OpenCoreLegacyPatcherv2.1.0)InstallmacOSonunsupportedMacs请访问原文链接:在不受支持的Mac上安装macOS(索引页面)查看最新版。原创作品,转载请保留出处。作者主页:sysin.org2024-11-01,OpenCoreLegacyPatcher2.1.0发......
  • Ubuntu24.04部署AspNetCore运行环境记录
    最近腾讯云轻量服务器centos7.9到期了,续费太贵,于是整了一个ubuntu24.04服务器,来继续折腾,主要是上面部署的前几年写的垃圾小程序,要不然也懒得折腾了。此篇文章就是记录运行环境安装的过程。安装mysql5.7.44本来想安装8.0的,直接使用apt安装方便快捷,但是想了想还是使用5.7吧,之前......
  • 软件工程 - 如何平衡代码质量和项目进度 - 论CICD的重要性
    共同愿景在软件工程的视角里,代码质量与项目进度是朝向同一个方向的作用力,彼此之间互相促进,它们拥有同一个愿景:保质保量的完成项目。项目周期内,团队时间的分配上维度上也不是矛盾的,是彼此分工不同,但相辅相成。通过均衡科学分配代码质量时间与项目开发时间,让项目的左膀右臂......