博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
.Net core 使用Jenkins + Docker + Azure Devops 持续部署(CI/CD)
阅读量:4348 次
发布时间:2019-06-07

本文共 2223 字,大约阅读时间需要 7 分钟。

    这几天一直在搞 Jenkins + Docker + Azure Devops 部署,因为这种方式部署真的非常的省心,而且速度快,方便快捷,等等无数优点,感谢我的单身领导的支持,当然也感谢 晓晨大神,没有他的博客,真的不知道怎么搞。

好滴,进入正题:  第零点:当然要先安装.Net core 运行时啦!官网上就有下载喔~

    首先  这里的jenkins并不是装在docker里面的jenkins,是直接安装到linux上的jenkins。我参考的是晓晨的博客,晓晨大佬就是厉害  原文链接: ,这里要强调的是:1、首先我们

先要安装java环境,这里又是参考晓晨大神的博客,原文链接: 里面非常详细的介绍咯 

但是这里要注意的就是:

 在官网下载需要点击这个选项才能下载,下载框中的那个就可以了。

 

然后jenkins安装晓晨大佬里的博客已经说的非常明白了。

接下来就是 Azure Devops的说明,微软这个东西非常的牛逼啊,配合vs使用简直是神器啊,

如图:可以建立自己的分支上传(push)和拉取(pull),从某分支合并(merge),完成团队协作。基本上使用非常简单,通过vs就可以直接新建项目到 Azure Devops,也可以建立多个分支,达到团队协作的目的,这里就不详细说明啦。

接下来就是docker 的安装了,好吧,我又参考了晓晨Master大神的博客,原文地址:,这里要说明的就是我们需要安装docker-compose ,这样就可以运行dockerfile文件脚本,达到自动部署的目的。

好吧,基本上安装完之后,我们就可以开始了:

首先我们需要在jenkins上面新建一个任务,注意是自由风格的软件项目: (这里有一部分参考晓晨的博客,原文链接:)

 

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

然后就是git的地址了:

 

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

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

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

 

接下来就是jenkins拉取代码的时间(这里 H/2 * * * * 是两分钟拉取一次):

然后是拉取后,构建执行的命令:

jenkins拉取代码后会判断代码与之前的是否不一致,如果不一致,则会执行构建。

接下来是docker的说明:可以看到上图的命令,倒数两行,会执行这个脚本文件,这个脚本文件实际上是docker的一些命令,所以我们需要在项目目录中添加这个脚本文件,我就是直接添加TXT文件改后缀.sh。(有点low。。。。)

来看看这个脚本里面放什么:

#!/bin/shdocker container ls -a | grep "tr"if [ $? -eq 0 ];then    docker container stop tr    docker container rm tr    docker rmi  tr    docker network ls |grep tr    docker network rm trfidocker build -t tr --build-arg env="Development" .docker run -d --restart=always  -p 8051:80 --name tr trdocker cp /etc/localtime tr:/etc/

可以看到就是如果存在tr 先停止 删除 然后再构建。当然我们也得有dockerfile这个文件,构建的时候docker会去找到dockerfile 然后执行里面的命令(dockerfile在新建.net core项目的时候勾选支持docker就可以咯,还有直接添加txt 去掉后缀也行哈哈哈)

然后看看dockerfile有什么:

# 基于dotnet基础环境构建镜像FROM docker.io/microsoft/dotnetRUN mkdir /TR#定义参数ARG env# 把发布的内容拷贝到docker容器的TR目录下COPY /publish /TR# 设置工作目录WORKDIR /TR# 暴露80端口EXPOSE 80# 设置环境变量ENV ASPNETCORE_ENVIRONMENT=$env# 启动webRUN echo "执行环境: $env"CMD ["dotnet","TR.dll"]

dockerfile指令详解说明:,里面都有说明就不多说了哈,要注意的就是:这里 jenkins  docker  Azure Devops 三者都是独立的,因为jenkins不是安装docker里面,首先我们上传代码到Azure Devops上,然后jenkins根据凭证去Azure Devops拉取代码到服务器上,执行命令脚本构建,然后就交给脚本执行,找到dockfile执行,重构镜像再生成容器。网站就部署到docker里面了。

大致的就是这样咯,感谢晓晨大佬的博客,给了我非常大的帮助,这就是大佬的博客地址:

转载于:https://www.cnblogs.com/Ivan-Wu/p/10103688.html

你可能感兴趣的文章
MSDN--ASP.NET概述
查看>>
【Lucene4.8教程之一】使用Lucene4.8进行索引及搜索的基本操作
查看>>
jsonp对付同源策略
查看>>
echart地图下钻
查看>>
tensorflow serving 编写配置文件platform_config_file的方法
查看>>
String 的intern() 方法说明
查看>>
java中Token验证
查看>>
javascript date部分
查看>>
防止被坑
查看>>
IC卡的逻辑卡号和市民卡卡号
查看>>
netBeans删除自动生成的函数(有代码删除不了的问题)
查看>>
virtualbox中centos系统配置nat+host only上网
查看>>
Hadoop的运行痕迹
查看>>
caioj1495: [视频]基于连通性状态压缩的动态规划问题:Formula 2
查看>>
2014025680(22)《嵌入式系统程序设计》第三、四周学习总结
查看>>
什么样的人适合编程
查看>>
W5500初始化过程
查看>>
开关电源9v,1A
查看>>
下载360doc.com里的文章
查看>>
【转】globk和glorg中使用的apr文件
查看>>