目前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 傻瓜式部署的更多相关文章

  1. Azure Terraform(五)利用Azure DevOps 实现自动化部署基础资源

    一,引言 上一篇我们结合学习 Azure Traffic Manger 的内容,做了一个负载均衡的基础设施架构.通过 Terraform 部署执行计划,将整个 Azure Traffic Manage ...

  2. Azure Terraform(七)利用Azure DevOps 实现自动化部署基础资源(补充)

    一,引言 之前一篇文章有讲解到利用 利用Azure DevOps 实现自动化部署基础资源,当时 TF 代码没有针对 Azure 各个资源的封装,所有的资源代码全部写在一个 main.tf 文件中.然后 ...

  3. 5分钟搭建wordpress个人博客网站——宝塔傻瓜式部署,无坑系列,附赠主题和md插件[2021-12-31]

    一.前言 自从买了服务器,小编已经马不停蹄的学了两天服务搭建的知识,问了很多大佬,快速搭建自己的博客网站.有四种方式,我在这里全部分享给大家.自己已经搭建好,欢迎大家过来看一下,给你提供个思路哈! 小 ...

  4. 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/ 这是中文的地址 创建一个项目 名称.描述 ...

  5. .net core +gogs + jenkins +docker自动化发布、部署

    1.首先,安装docker,不多bb 2.我们采用docker的方式安装jenkins,同时将宿主机的docker挂载到docker安装的jenkins里面,可能有点拗口.说白了就是 就是要让jenk ...

  6. CentOS 傻瓜式部署uWSGI + nginx + flask

    交代背景 这篇帖子是为了提供我自己的July Novel站点的小说数据支撑.解决分布式部署爬虫程序的繁琐过程,由于本人对shell编程并不熟悉,故而先逐步记录操作步骤,通过以下操作达到节省时间的方式. ...

  7. kubernetes+Azure DevOps实现.Net Core项目的自动化部署&均衡负载

    1. 前言 2. Net Core项目本身的准备 2.1 dockerfile 2.2 创建kubernetes用于helm的chart包 2.2.1 说明 2.2.2 chart文件目录和文件组成 ...

  8. docker 执行 docker system prune 导致Azure Devops build镜像失败

    运行docker的centos上, 只分配了16G的空间, 装了个mysql, 还有个rancher, 就只剩下2G的空间了, Azure Devops build镜像就出错了, 显示存储空间不足, ...

  9. Azure Terraform(八)利用Azure DevOps 实现Infra资源和.NET CORE Web 应用程序的持续集成、持续部署

    一,引言 上一篇讲解到利用 Azure DevOps 将整个 Azure Web App,Azure Traffic Manager profile,Azure Storage Account,Azu ...

随机推荐

  1. jQuery阻止向上冒泡事件

    //阻止起泡取消下面的注释 e.stopPropagation(); //或者使用这种方式 //return false; }); $('.three').click(function(e){ ale ...

  2. MySQL数据库备份与还原

    备份数据库 1.使用mysqldump命令备份 备份一个数据库:mysqldump -u 用户名 -p密码 数据库名 [表名1,表名2...]>备份文件路径及名字.sql           如 ...

  3. Java任务调度框架Quartz入门

    Quartz[kwɔːts]:石英,其框架和名字一样简单朴素又不失魅力,在Java程序界,Quartz大名鼎鼎,很多Java应用几乎都集成或构建了一个定时任务调度系统,Quartz是一个定时任务调度框 ...

  4. less @import and extend及mixin详解

    在less中,通过 @import (keyword) "filename"的方式引入其他的文件,这个keyword可以是以下6种: referrence referrence这个 ...

  5. angularJS web应用SEO

    javascript给网站带来丰富的用户体验,越来越多的网站开始应用angularjs/emberjs这类MVC来开发web应用,可以说能够使用native方式来看法的手机app基本都可以使用替代的j ...

  6. Process.start: how to get the output?

    1: Synchronous example static void runCommand() { Process process = new Process(); process.StartInfo ...

  7. Python学习---重点模块之json

    注意:JSON不能转换类,不能转换函数 重点方法示例 json.dumps():实现文件写入,字符串转换[写入文件当然是JSON字符串楼] 实际上,json.dumps()只是帮我们做了一个字符串的转 ...

  8. calculate fraction by oracle

    QUESTION:When you meet calculate fraction in oracle SOLUTION: 1.Check out their values respectively. ...

  9. vue + element-ui 制作下拉菜单(可配置路由、可根据路由高亮list、可刷新自动展开定位路由)

    本篇文章分享一篇关于 vue制作可路由切换组件.可刷新根据路由定位导航(自动展开).可根据路由高亮对应导航选项 一.实现的功能如下: 1.可折叠导航面板 2.点击导航路由不同组件           ...

  10. Windows 10 X64 ISO 专业版&家庭版下载与永久激活

    好久没有更新博客,算算时间,已经有4年了,好吧,今天突发奇想,想把今天安装Windows 10的过程给记录下来. 2015年的时候,微软就发布了Windows 10,当时正版的Win7.Win8都可以 ...