.NET微服务架构CI/CD镜像自动分发

如何通过Jenkins完成镜像分发?基本做法是:打包镜像→上传镜像到仓库→脚本分发。镜像仓库也有很多,比如docker hub、Harbor等,今天这一篇讲一下基于阿里云镜像仓库的操作。

首先,准备一个阿里云镜像仓库,个人版是免费的。

然后下载这个插件:

Publish Over SSH

这个插件主要用来远程登录服务器并执行脚本。

插件安装完毕后,系统设置会多出这一项,戳图里这个按钮:

然后,把服务器的ip、账户、密码填进去:

配置好以后,最好点测试按钮试一下,如果没问题会输出“Success”

接下来找到之前的工作流,新增构建步骤:

选中刚才新增的server,编写脚本进行上传:

echo "==========登录仓库=========="
docker login --username=阿里云账户 --password=阿里云仓库密码 registry.cn-shenzhen.aliyuncs.com

echo "==========上传镜像=========="
docker tag mydotnet6 registry.cn-shenzhen.aliyuncs.com/命名空间/仓库名:latest
docker push registry.cn-shenzhen.aliyuncs.com/命名空间/仓库名:latest

echo "==========清理镜像=========="
docker rmi -f mydotnet6
docker rmi registry.cn-shenzhen.aliyuncs.com/命名空间/仓库名:latest

手动构建一下,去看阿里云仓库:

镜像自动上传,Get~

接下来要从仓库拉取镜像并运行,该怎么做呢?想必聪明的你已经知道了——没错,还是同样的流程:添加SSH Server→添加构建步骤→编写Shell。添加并选择新的SSH Server,执行这些shell:

echo "==========停止进程=========="
docker kill -s KILL mydotnet6

echo "==========删除容器=========="
docker rm mydotnet6 

echo "==========删除镜像=========="
docker rmi -f registry.cn-shenzhen.aliyuncs.com/命名空间/仓库名:latest

echo "==========登录仓库=========="
docker login --username=阿里云账户 --password=阿里云仓库密码 registry.cn-shenzhen.aliyuncs.com

echo "==========拉取新镜像=========="
docker pull registry.cn-shenzhen.aliyuncs.com/命名空间/仓库名:latest

echo "==========开始运行=========="
docker run -itd -p 5000:80 --restart always --name=mydotnet6 registry.cn-shenzhen.aliyuncs.com/命名空间/仓库名:latest

然后再次手动触发构建,去server02查看容器:

访问一下:

访问正常。手动构建没问题,那么自动构建呢?打开项目新增一个NB方法:

Git提交,等待一段时间后直接刷新swagger:

只需要Git上传代码就能完成这些,爽不?

自动部署Get~

小结

前文:

.NET微服务架构CI/CD自动打包镜像

.NET微服务架构CI/CD自动构建Jenkins+Gitee

看完这三篇文章,你应该可以成功搭建CICD环境了,然后你会发现它并不难。不过如果你想在生产环境应用它,可能会有些坑。当然,我已经踩过了,而且有些坑还给我的公司造成了损失。既然说到这里,当然不会看着同学们踩坑,所以我还会写个防踩坑指南,下一篇见。

到此这篇关于.NET微服务架构CI/CD镜像自动分发的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • .NET微服务架构CI/CD自动打包镜像

    目录 准备工作 一.开启docker的tcp 二.Jenkins安装Docker插件 配置Docker 配置工作流 小结 准备工作 一.开启docker的tcp 我的服务器是linux,以端口2376为例,找到docker.service,在ExecStart下新增这段代码即可: -H tcp://0.0.0.0:2376 -H unix:///var/run/docker.sock 效果图: 然后重载服务列表,重启docker,语句: systemctl daemon-reload syste

  • .NET微服务架构CI/CD自动构建Jenkins+Gitee

    目录 CI/CD 准备工作 安装Jenkins 添加并配置Gitee 新建工作流 CI/CD 它的意思是 持续集成/持续部署,这也不是新概念.那些八股文就不写了,说话的方式简单点:如果成功搭建CI/CD环境,当你需要迭代线上程序时,只需通过git提交代码就可以,其他什么都不用做.是不是很爽?这样你就拥有了快速迭代的能力,微服务大环境下,这也是必要的. 准备工作 1.准备一个.NET6项目: 2.准备一个gitee仓库 3.准备一台服务器(非必要) 安装Jenkins 首先在docker中运行这段

  • 使用CI/CD工具Github Action发布jar到Maven中央仓库的详细介绍

    之前发布开源项目Payment Spring Boot到Maven中央仓库我都是手动执行mvn deploy,在CI/CD大行其道的今天使用这种方式有点"原始".于是我一直在寻求一种能够支持流水线作业的发布工具,能让我在进行合并代码时自动触发构建发布.有一款免费的产品能做到这一点,它就是Github Action. Github Action Github Action是由Github创建的CI/CD服务. 它的目的是使所有软件开发工作流程的自动化变得容易. 直接从GitHub构建,测

  • .NET微服务架构CI/CD镜像自动分发

    如何通过Jenkins完成镜像分发?基本做法是:打包镜像→上传镜像到仓库→脚本分发.镜像仓库也有很多,比如docker hub.Harbor等,今天这一篇讲一下基于阿里云镜像仓库的操作. 首先,准备一个阿里云镜像仓库,个人版是免费的. 然后下载这个插件: Publish Over SSH 这个插件主要用来远程登录服务器并执行脚本. 插件安装完毕后,系统设置会多出这一项,戳图里这个按钮: 然后,把服务器的ip.账户.密码填进去: 配置好以后,最好点测试按钮试一下,如果没问题会输出“Success”

  • Spring Cloud微服务架构的构建:分布式配置中心(加密解密功能)

    前言 要会用,首先要了解.图懒得画,借鉴网上大牛的图吧,springcloud组建架构如图: 微服务架构的应用场景: 1.系统拆分,多个子系统 2.每个子系统可部署多个应用,应用之间负载均衡实现 3.需要一个服务注册中心,所有的服务都在注册中心注册,负载均衡也是通过在注册中心注册的服务来使用一定策略来实现. 4.所有的客户端都通过同一个网关地址访问后台的服务,通过路由配置,网关来判断一个URL请求由哪个服务处理.请求转发到服务上的时候也使用负载均衡. 5.服务之间有时候也需要相互访问.例如有一个

  • 详解Spring Cloud微服务架构下的WebSocket解决方案

    WebSocket在现代浏览器中的应用已经算是比较普遍了,在某些业务场景下,要求必须能够在服务器端推送消息至客户端.在没有WebSocket的年代,我们使用过dwr,在那个时候dwr真实一个非常棒的方案.但是在WebSocket兴起之后,我们更愿意使用标准实现来解决问题. 首先交代一下,本篇文章不讲解WebSocket的配置,主要讲的是针对在微服务架构集群模式下解决方案的选择. 微服务架构大家应该都不陌生了,在微服务架构下,服务是分布式的,而且为了保证业务的可用性,每个服务都是以集群的形式存在.

  • 浅谈Redis在微服务架构中的几种应用场景

    本文介绍在SpringCloud中使用Redis作为Pub/Sub异步通信.缓存或主数据库和配置服务器的三种场景应用. Redis可以广泛用于微服务架构.它可能是您应用程序以多种不同方式利用的少数流行软件解决方案之一.根据要求,它可以充当主数据库,缓存或消息代理.虽然它也是一个键/值存储,但我们可以将它用作微服务体系结构中的配置服务器或发现服务器.虽然它通常被定义为内存中的数据结构,但我们也可以在持久模式下运行它. 这里我将向您展示一些使用Redis与Spring Boot和Spring Clo

  • Springcloud微服务架构基础知识解析

    一 前言 学习微服务要从基础的架构学起,首先你要有个微服务的概念才能学习对吧!!如果你都不知道啥是微服务,就一头扎进去学习,你自己也觉得自己也学不会对吧.本篇文章主要让大家快速了解基础的架构分格,以便于微服务入门. 二 单体架构 单体架构是传统架构,其发展了几十年,我们今天任然还在用单体架构开发,存在即合理:单体架构也就是通常的表现层跟UI界面交互,业务层写业务逻辑,数据DAO层访问数据库.其部署方式也很简单,直接将项目打包成war包放进web服务器(如tomcat,jetty)中运行: 其优点

  • 微服务架构设计RocketMQ基础及环境整合

    目录 概述&选型 单机安装配置 双机主从高可用搭建 启动多个NameServer 和 Broker 重要参数说明 可视化管理平台 SpringBoot整合RocketMQ 引入组件rocketmq-spring-boot-starter 依赖 修改application.yml,添加RocketMQ相关配置 编写消息生产者 MessageProduce 编写消息消费者 MessageConsumer 编写单元测试发送消息 测试 概述&选型 消息队列作为高并发系统的核心组件之一,能够帮助业务

  • Java中dubbo+zookeeper微服务架构简介

    目录 1.Apache Dubbo概述 1.1.Dubbo简介 1.2.Dubbo的服务架构 2.服务注册中心 Zookeeper 2.1.ZooKeeper介绍 2.2.ZooKeeper安装 2.3.启动 ZooKeeper 3.ZooKeeper快速入门 3.1.服务提供方 3.2.服务消费方 3.3.问题思考 4. Dubbo管理控制台 4.1.安装 5. Dubbo相关配置 5.1.包扫描 5.2.Dubbo 协议 5.3.负载均衡 5.4. Dubbo无法发布被事务代理的服务 1.A

  • 详解微服务架构及其演进史

    目录 1 传统单体系统介绍 1.1 单体系统的问题 1.2 单体系统的优点 1.3 单体服务到微服务的发展过程 2 关于微服务 2.1 单一职责 2.2 轻量级通信 2.3 独立性 2.4 进程隔离 2.5 混合技术栈和混合部署方式 2.6 简化治理 2.7 安全可靠,可维护. 3 微服务演进史 3.1 第一阶:简单服务通信模块 3.2 第二阶:原始通信时代 3.3 第三阶:TCP时代 3.4 第四阶:第一代微服务(Spring Cloud/RPC) 3.5 第五阶:第二代微服务 3.6 第六阶

随机推荐