K8S+GitLab-自动化分布式部署ASP.NET Core(三) 更新镜像版本并部署到K8S上
一.介绍
前一篇,介绍了ASP.NET Core部署到K8S上,下面介绍我们在发布新一版本中怎么通过Gitlab CI自动给镜像打版本并部署到K8S上.
二.我们通过GitLab CI/CD 变量
不废话,先上代码:
stages:
- build
- test
- package
- deploy
- release build:
stage: build
script:
- cd Deploy.API
- dotnet build test:
stage: test
script:
- dotnet restore
- dotnet build
- cd minicover
- dotnet restore
- dotnet minicover instrument --workdir ../ --assemblies Deploy.API.UnitTests/bin/**/*.dll --sources Deploy.API/**/*.cs
- dotnet minicover reset
- cd ..
- dotnet test --no-build Deploy.API.UnitTests/Deploy.API.UnitTests.csproj
- cd minicover
- dotnet minicover report --workdir ../ --threshold 10
- dotnet minicover uninstrument --workdir ../ package:
stage: package
script:
- cd Deploy.API
- docker build -t deploy:test .
#- docker login --username $ALIYUN_NAME --password $ALIYUN_TOKEN registry.cn-hangzhou.aliyuncs.com #阿里云仓库
#- docker tag deploy:test registry.cn-hangzhou.aliyuncs.com/windows_evan/deploy:test
#- docker push registry.cn-hangzhou.aliyuncs.com/windows_evan/deploy:test
- docker login --username=evan --password Pwd123456 192.168.0.203 #私有仓库Harbor
- docker tag deploy:test 192.168.0.203/myproject/deploy:test
- docker push 192.168.0.203/myproject/deploy:test deploy:
stage: deploy
script:
- if [ $(docker ps -aq --filter name=userapi) ]; then docker rm -f userapi;fi
#- docker run -d -p 8003:80 --link db-mysql --network net_db --name userapi registry.cn-hangzhou.aliyuncs.com/windows_evan/deploy:test
- docker run -d -p 8003:80 --link db-mysql --network net_db --name userapi 192.168.0.203/myproject/deploy:test release:
stage: release
script:
- cd Deploy.API
- sed -i 's/deploy:test/deploy:'$CI_COMMIT_TAG'/g' deploy.yaml
- cat deploy.yaml
- kubectl apply -f deploy.yaml
only:
- tags package-release:
stage: package
script:
- cd Deploy.API
- docker build -t deploy:$CI_COMMIT_TAG .
- docker login --username=evan --password Pwd123456 192.168.0.203
- docker tag deploy:$CI_COMMIT_TAG 192.168.0.203/myproject/deploy:$CI_COMMIT_TAG
- docker push 192.168.0.203/myproject/deploy:$CI_COMMIT_TAG
only:
- tags
上面的.gitlab-ci.yml 可以看到平常开发人员提交代码先 build , test , package (tag:test) , deploy (docker) ,只有给项目创建tags才会执行package-release , release , 我们通过 sed 命令修改deploy.yaml文件里的test镜像版本.
三.相关链接参考
https://www.cnblogs.com/MrVolleyball/p/10315698.html 更新k8s镜像版本的三种方式(wilson排球)
GitLab CI/CD Variables
K8S+GitLab-自动化分布式部署ASP.NET Core(三) 更新镜像版本并部署到K8S上的更多相关文章
- wsl 2 unbuntu 部署 asp.net core 使用 nginx 做反向代理,调试文件上传失败
继上一篇 asp.net core 3.1多种身份验证方案,cookie和jwt混合认证授权 的公司内部项目上线后发现文件上传功能有问题. 上传的文件超过50M以后前端就报错了,没有状态返回,也没有响 ...
- K8S+GitLab-自动化分布式部署ASP.NET Core(二) ASP.NET Core DevOps
一.介绍 前一篇,写的K8S部署环境的文章,简单的介绍下DevOps(Development和Operations的组合词),高效交付, 自动化流程,来减少软件开发人员和运维人员的沟通.Martin ...
- k8s+Jenkins+GitLab-自动化部署asp.net core项目
0.目录 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 此文阅读目录: 1.闲聊 ...
- 使用Linux、Nginx和Github Actions托管部署ASP.NET Core 6.0应用
使用Linux.Nginx和Github Actions托管部署ASP.NET Core 6.0应用 前言 本文主要参考微软这篇文档而来 Host ASP.NET Core on Linux with ...
- Azure 部署 Asp.NET Core Web App
在云计算大行其道的时代,当你在部署一个网站时,第一选择肯定是各式各样的云端服务.那么究竟使用什么样的云端服务才能够以最快捷的方式部署一个 ASP.NET Core 的网站呢?Azure 的 Web A ...
- [原]CentOS7.2最小安装环境部署Asp.NET Core笔记
转载请注明原作者(think8848)和出处(http://think8848.cnblogs.com) 写在前面的话 不知不觉在cnblogs上注册已经10多年了,看我的园龄就直接暴露了我实际年龄, ...
- ubuntu16.4下用jexus部署asp.net core rtm
上篇文章介绍了下用vs发布部署到iis环境,今天说下ubuntu 下部署asp.net core,不需要安装.net core sdk,自带运行时方式部署,利用jexus服务器转发请求到asp.net ...
- win10下iis部署asp.net core rtm
随着ASP.NET Core 1.0 rtm的发布,网上有许多相关.net core 相关文章,今刚好有时间也在win10环境上搭建下 ASP.NET Core的部署环境,把过程记录下给大家. 1. ...
- Jexus + Kestrel 部署 asp.net core
结合Jexus + Kestrel 部署 asp.net core 生产环境 ASP.NET Core 是微软的全新的框架.这一框架的目标 ︰ 跨平台 针对云应用优化 解除 System.Web 的依 ...
随机推荐
- Escape(状态压缩+最大流,好题)
Escape http://acm.hdu.edu.cn/showproblem.php?pid=3605 Time Limit: 4000/2000 MS (Java/Others) Memo ...
- SSH框架分模块开发
------------------siwuxie095 SSH 框架分模块开发 1.在 Spring 核心配置文件中配置多个内容,容易造成 配置混乱,不利于维护 「分模块开发主要针对 Spring ...
- 【Linux 进程】之关于父子进程之间的数据共享分析
之前我们通过fork()函数,得知了父子进程之间的存在着代码的拷贝,且父子进程都相互独立执行,那么父子进程是否共享同一段数据,即是否存在着数据共享.接下来我们就来分析分析父子进程是否存在着数据共享. ...
- Gridview中 LinkButton删除以及自带删除
<asp:LinkButton ID="lbtnDel" OnClientClick="return confirm('删除新闻会连同其下评论一起删除,是否删除?' ...
- C#中int? 转换为 int 型
用 “ var a= zongfen.Score;”
- js回车、ESC、F2按钮事件
<script type="text/javascript" language=JavaScript charset="UTF-8"> docume ...
- Linux tcpdump命令
一.简介 用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具. tcpdump可以将网络中传送的数据 ...
- 201621123008 《Java程序设计》 第三周学习总结
1. 本周学习总结 1.1 写出你认为本周学习中比较重要的知识点关键词,如类.对象.封装等 关键词:类,构造函数,方法重载,方法覆盖,封装,继承,多态,类被加载的过程,static,abstract, ...
- Debian Buster Nginx 布署 Brophp 项目(类 Thinkphp)
1 材料 debian buster nginx a project that develop base brophp 2 步骤 配置文件 /etc/nginx/sites-available/pis ...
- Javascript中escape()、encodeURI()、encodeURIComponent()的区别
JavaScript中有三个可以对字符串编码的函数,分别是: escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decod ...