.Net core 使用Jenkins + Docker + Azure Devops 傻瓜式部署
目前CI/CD挺火的,这里使用的Jenkins + Docker + Azure Devops 部署,或者可以用这套Jenkins + Docker + Github或GitLab部署,
进入正题: 第零点:当然要先安装.Net core 运行时,官网上就有下载。
首先 这里的jenkins并不是装在docker里面的jenkins,是直接安装到linux上的jenkins。其实安装在docker更加方便,因为这样系统不用安装JavaSdk,我参考的是晓晨的博客,原文链接:https://www.cnblogs.com/stulzq/p/9291237.html ,这里要强调的是:1、首先我们先要安装java环境,参考晓晨的博客,原文链接:https://www.cnblogs.com/stulzq/p/9286878.html 里面非常详细的介绍。
但是这里要注意的就是:
官网地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 在官网下载需要点击这个选项才能下载,下载框中的那个就可以了。

然后jenkins安装晓晨的博客已经说的非常明白了。
接下来就是 Azure Devops的说明,微软这个东西挺不错的,配合vs使用也挺好用的,但是还是比不上github,

如图:可以建立自己的分支上传(push)和拉取(pull),从某分支合并(merge),完成团队协作。基本上使用非常简单,通过vs就可以直接新建项目到 Azure Devops,也可以建立多个分支,达到团队协作的目的,这里就不详细说明啦。
接下来就是docker 的安装了,这里也是参考晓晨博客,原文地址:http://www.cnblogs.com/stulzq/p/7743073.html,这里要说明的就是我们需要安装docker-compose ,这样就可以运行dockerfile文件脚本,达到自动部署的目的。
好吧,基本上安装完之后,我们就可以开始了:
首先我们需要在jenkins上面新建一个任务,自由风格的软件项目: (这里有一部分参考晓晨的博客,原文链接:http://www.cnblogs.com/stulzq/p/8627824.html)

然后点击ok进入下一个页面,这里的是丢弃旧的构建,因为太多就占磁盘了,第一个是保留几天的build记录,第二个是最多保留多少个构建,设小一点就不会占很多硬盘空间了。

然后就是git的地址了:

上图的git地址, 就是这里的git clone地址 (当然git地址都行):

还需要注意的就是凭证(再点击右上角你的账户下的security):

在这里面填入名称密码就可以了,然后在上面的凭证Credentials填入就行了:

接下来就是jenkins拉取代码的时间(这里 H/2 * * * * 是两分钟拉取一次):
:
然后是拉取后,构建执行的命令:

jenkins拉取代码后会判断代码与之前的是否不一致,如果不一致,则会执行构建。
接下来是docker的说明:可以看到上图的命令,倒数两行,会执行这个脚本文件,这个脚本文件实际上是docker的一些命令,所以我们需要在项目目录中添加这个脚本文件,我就是直接添加TXT文件改后缀.sh。(有点low。。。。)
来看看这个脚本里面放什么:
#!/bin/sh
docker container ls -a | grep "tr"
if [ $? -eq ];then
docker container stop tr
docker container rm tr
docker rmi tr
docker network ls |grep tr
docker network rm tr
fi docker build -t tr --build-arg env="Development" .
docker run -d --restart=always -p : --name tr tr
docker cp /etc/localtime tr:/etc/
可以看到就是如果存在tr 先停止 删除 然后再构建。当然我们也得有dockerfile这个文件,构建的时候docker会去找到dockerfile 然后执行里面的命令(dockerfile在新建.net core项目的时候勾选支持docker就可以咯,还有直接添加txt 去掉后缀也行哈哈哈)
然后看看dockerfile有什么:
# 基于dotnet基础环境构建镜像
FROM docker.io/microsoft/dotnet RUN mkdir /TR
#定义参数
ARG env
# 把发布的内容拷贝到docker容器的TR目录下
COPY /publish /TR
# 设置工作目录
WORKDIR /TR
# 暴露80端口
EXPOSE
# 设置环境变量
ENV ASPNETCORE_ENVIRONMENT=$env
# 启动web
RUN echo "执行环境: $env"
CMD ["dotnet","TR.dll"]
dockerfile指令详解说明:https://yeasy.gitbooks.io/docker_practice/content/image/dockerfile/,里面都有说明就不多说了,要注意的就是,大致的流程就是首先我们上传代码到Azure Devops上,然后jenkins根据凭证去Azure Devops拉取代码到服务器上,执行命令脚本构建,然后就交给脚本执行,找到dockfile执行,重构镜像再生成容器。网站就部署到docker里面了。
大致的就是这样,感谢晓晨的博客,给了我非常大的帮助,这就是晓晨的博客地址:https://www.cnblogs.com/stulzq/
.Net core 使用Jenkins + Docker + Azure Devops 傻瓜式部署的更多相关文章
- Azure Terraform(五)利用Azure DevOps 实现自动化部署基础资源
一,引言 上一篇我们结合学习 Azure Traffic Manger 的内容,做了一个负载均衡的基础设施架构.通过 Terraform 部署执行计划,将整个 Azure Traffic Manage ...
- Azure Terraform(七)利用Azure DevOps 实现自动化部署基础资源(补充)
一,引言 之前一篇文章有讲解到利用 利用Azure DevOps 实现自动化部署基础资源,当时 TF 代码没有针对 Azure 各个资源的封装,所有的资源代码全部写在一个 main.tf 文件中.然后 ...
- 5分钟搭建wordpress个人博客网站——宝塔傻瓜式部署,无坑系列,附赠主题和md插件[2021-12-31]
一.前言 自从买了服务器,小编已经马不停蹄的学了两天服务搭建的知识,问了很多大佬,快速搭建自己的博客网站.有四种方式,我在这里全部分享给大家.自己已经搭建好,欢迎大家过来看一下,给你提供个思路哈! 小 ...
- ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 27. CICD Azure DevOps
VSTS做持续集成 后来改名叫做Azure Deveps https://azure.microsoft.com/zh-cn/services/devops/ 这是中文的地址 创建一个项目 名称.描述 ...
- .net core +gogs + jenkins +docker自动化发布、部署
1.首先,安装docker,不多bb 2.我们采用docker的方式安装jenkins,同时将宿主机的docker挂载到docker安装的jenkins里面,可能有点拗口.说白了就是 就是要让jenk ...
- CentOS 傻瓜式部署uWSGI + nginx + flask
交代背景 这篇帖子是为了提供我自己的July Novel站点的小说数据支撑.解决分布式部署爬虫程序的繁琐过程,由于本人对shell编程并不熟悉,故而先逐步记录操作步骤,通过以下操作达到节省时间的方式. ...
- kubernetes+Azure DevOps实现.Net Core项目的自动化部署&均衡负载
1. 前言 2. Net Core项目本身的准备 2.1 dockerfile 2.2 创建kubernetes用于helm的chart包 2.2.1 说明 2.2.2 chart文件目录和文件组成 ...
- docker 执行 docker system prune 导致Azure Devops build镜像失败
运行docker的centos上, 只分配了16G的空间, 装了个mysql, 还有个rancher, 就只剩下2G的空间了, Azure Devops build镜像就出错了, 显示存储空间不足, ...
- Azure Terraform(八)利用Azure DevOps 实现Infra资源和.NET CORE Web 应用程序的持续集成、持续部署
一,引言 上一篇讲解到利用 Azure DevOps 将整个 Azure Web App,Azure Traffic Manager profile,Azure Storage Account,Azu ...
随机推荐
- 移动端mate标签设置
<meta name="viewport" content="width=device-width,height=device-height,initial-sca ...
- hdu 3613 Best Reward (manachar算法)
Best Reward Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Prob ...
- linux 安装源码后的操作 ldconfig
https://blog.csdn.net/cqkxboy168/article/details/8657487 知识点: .如果使用 ldd 命令时没有找到对应的共享库文件和其具体位置,可能是两种情 ...
- 比特币钱包Armory使用指南
转自:http://news.yibite.com/application/2014/0525/21603.shtml 比特币钱包Armory(https://bitcoinarmory.com/)是 ...
- java实现哈弗曼树和哈夫曼树压缩
本篇博文将介绍什么是哈夫曼树,并且如何在java语言中构建一棵哈夫曼树,怎么利用哈夫曼树实现对文件的压缩和解压.首先,先来了解下什么哈夫曼树. 一.哈夫曼树 哈夫曼树属于二叉树,即树的结点最多拥有2个 ...
- UnicodeDecodeError: 'utf8' codec can't decode byte in position invalid start byte
在scrapy项目中,由于编码问题,下载的网页中中文都是utf-8编码,在Pipeline.py中方法process_item将结果保存到数据库中时,提示UnicodeDecodeError: 'ut ...
- coder/programmer engineer Chirf Technology Offcer
大概是某个C轮融资的医疗网站CTO被离职.而CTO是一个知乎大V和微信大号.此事一出,在微信群有支持也有反对之声.支持此CTO被离职的认为其在工作时没有Review程序,自己不写代码,而是热衷出没于技 ...
- 设计模式:桥接(Bridge)模式
设计模式:桥接(Bridge)模式 一.前言 写到这里,基本上就是对前面几种模式的扩展和区别了,可以看到我们前面的几种模式,很多时候都出现了重叠,这里要分清一个概念,模式并不是完全隔离和独立的,有 ...
- 经典优秀屏幕截图录像工具FastStone Capture推荐
FastStone Capture (FSCapture) 是经典好用的屏幕截图软件,还具有图像编辑和屏幕录制两大功能. FastStone Capture 主要功能 包括:1.截图功能(可以捕捉:活 ...
- PHP----练习-----三级联动
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...