目前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. vue中全局引入bootstrap.css

    1.首先在官网上下载bootstrap的压缩包(必须是官网上下载的) 将压缩包解压后引入在项目文件夹下面.如下图所示: 2.在main.js中引入 import './assets/bootstrap ...

  2. FPGA学习系列 各种门器件程序积累

    1. 两输入与(and)门 entity and2gate is Port ( x : in STD_LOGIC; y : in STD_LOGIC; z : out STD_LOGIC);end a ...

  3. Netty相关面试题

    1.BIO.NIO和AIO的区别? BIO:一个连接一个线程,客户端有连接请求时服务器端就需要启动一个线程进行处理.线程开销大. 伪异步IO:将请求连接放入线程池,一对多,但线程还是很宝贵的资源. N ...

  4. 关于 Web 安全,99% 的网站都忽略了这些

    Web安全是一个如何强调都不为过的事情,我们发现国内的众多网站都没有实现全站https,对于其他安全策略的实践更是很少,本文的目的并非讨论安全和攻击的细节,而是从策略的角度引发对安全的思考和重视. 1 ...

  5. Hyper-V迁移---委派

    在Hyper-V管理器中-实时迁移,选择“使用kerberos",如图1所示 在AD中,找到Hyper-V宿主,分别设置委派,如图2所示    图1               图2

  6. Web博文目录

    前言 博客写的多了,自己翻起来也费劲,这里就进行一下整合. 以前设想自己做DBA,做运维,没想到最后还要走开发这条路,干一行就爱一行...学的扎实点,工作起来也会轻松.—— 送给奋斗的自己 1 Jav ...

  7. January 19 2017 Week 3 Thursday

    What a man needs most is appreciated. 人性最深切的需求就是渴望别人的赞赏. Being appreciated by others is very importa ...

  8. CF839D Winter is here

    题目分析 显然我们不可能直接计算每一个子序列的贡献,而应该计算对于每一个gcd对答案的贡献. 考虑容斥.按照套路: 设\(q(i)\)表示序列\(gcd\)为\(i\)的倍数的序列长度和. 设\(g( ...

  9. HDOJ 1528 Card Game Cheater

    版权声明:来自: 码代码的猿猿的AC之路 http://blog.csdn.net/ck_boss https://blog.csdn.net/u012797220/article/details/3 ...

  10. 「LG2664 树上游戏」

    题目 这真是一道神仙的一批的题目 定义\(s(i,j)\)表示从点\(i\)到点\(j\)经过的颜色数量 设 \[sum_i=\sum_{j=1}^ns(i,j)\] 求出所有的\(sum_i\) 考 ...