Azure 实践(4)- CI/CD .netcore项目Docker构建及部署

发布时间:2022-07-05 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了Azure 实践(4)- CI/CD .netcore项目Docker构建及部署脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

上篇已介绍了.netcore项目构建的相关步骤,本篇继续完善

1、什么是CI/CD

CI/CD 中的“CI”始终指持续集成,它属于开发人员的自动化流程。成功的 CI 意味着应用代码的新更改会定期构建、测试并合并到共享存储库中。该解决方案可以解决在一次开发中有太多应用分支,从而导致相互冲突的问题。
CI/CD 中的“CD”指的是持续交付和/或持续部署,这些相关概念有时会交叉使用。两者都事关管道后续阶段的自动化,但它们有时也会单独使用,用于说明自动化程度。

2、Azure Devops创建镜像注册连接

  • 通过项目设置,创建新的服务连接

    Azure 实践(4)- CI/CD .netcore项目Docker构建及部署

  • 选择docker Registry,点下一步

    Azure 实践(4)- CI/CD .netcore项目Docker构建及部署

  • 填写docker hub用户验证信息及服务器连接名称,点验证,看到成功

    Azure 实践(4)- CI/CD .netcore项目Docker构建及部署

3、编辑Azure Devops管道信息,添加推送镜像操作

  • 添加设置对应的镜像仓库信息

    Azure 实践(4)- CI/CD .netcore项目Docker构建及部署

    Azure 实践(4)- CI/CD .netcore项目Docker构建及部署

4、保存管道信息,退出编辑,重新运行管道

  • 运行管道,报错信息如下,denied: requested access to the resource is denied

    Azure 实践(4)- CI/CD .netcore项目Docker构建及部署

    解决方法:参考https://sample.blog.csdn.net/article/details/70156144
    添加镜像前缀tag

    Azure 实践(4)- CI/CD .netcore项目Docker构建及部署

  • 再次运行管道,管道执行成功,备注:docker hub国内访问较慢

    Azure 实践(4)- CI/CD .netcore项目Docker构建及部署

  • 登入docker hub,发现多了一个镜像,说明构建推送镜像成功

    Azure 实践(4)- CI/CD .netcore项目Docker构建及部署

5、新建发布管道,部署应用

  • 创建发布管道

    Azure 实践(4)- CI/CD .netcore项目Docker构建及部署

  • 新建一个空作业

    Azure 实践(4)- CI/CD .netcore项目Docker构建及部署

  • 添加项目信息

    Azure 实践(4)- CI/CD .netcore项目Docker构建及部署

  • 添加阶段,命名部署应用,随意

    Azure 实践(4)- CI/CD .netcore项目Docker构建及部署

    Azure 实践(4)- CI/CD .netcore项目Docker构建及部署

  • 想代理作业中添加任务,选择ssh连接应用主机,执行命令

    Azure 实践(4)- CI/CD .netcore项目Docker构建及部署

    Azure 实践(4)- CI/CD .netcore项目Docker构建及部署

    Azure 实践(4)- CI/CD .netcore项目Docker构建及部署

  • 参考脚本:
      #!/bin/bash
        name="netcoreapp01"
        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 --format {{.ID}} $name`
      echo "准备删除旧镜像${imageid}"
      if [[ ${#imageid} -gt 0 ]]; then
         docker rmi -f $imageid
         echo "successed deleted old image ${name}"
      fi
      LOGfile="/VAR/log/servicelog/$name"
      if [[ ! -x "$logfile" ]]; then
       mkdir -p "$logfile" 
       echo "已成功创建日志文件夹"
      else 
        echo "文件存夹已存在"
      fi
      docker pull hub.docker.COM/reposITory/docker/xjk27400861/coreapP3:$(Build.BuildId)
      docker tag hub.docker.com/repository/docker/xjk27400861/coreapp3:$(Build.BuildId) coreapp3:$(Build.BuildId)
      docker run -it -d -p 8002:80 --name netcoreapp01 --PRivileged=true 			coreapp3:$(Build.BuildId)
      docker logs netcoreapp01
    
  • 创建发布,部署应用

    Azure 实践(4)- CI/CD .netcore项目Docker构建及部署

  • 部署应用

    Azure 实践(4)- CI/CD .netcore项目Docker构建及部署

    Azure 实践(4)- CI/CD .netcore项目Docker构建及部署

  • 发现部署成功

    Azure 实践(4)- CI/CD .netcore项目Docker构建及部署

  • 访问应用,部署成功

    Azure 实践(4)- CI/CD .netcore项目Docker构建及部署

脚本宝典总结

以上是脚本宝典为你收集整理的Azure 实践(4)- CI/CD .netcore项目Docker构建及部署全部内容,希望文章能够帮你解决Azure 实践(4)- CI/CD .netcore项目Docker构建及部署所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。