.netcore mvc docker环境jenkins一键部署(DevOps) (2)

  答案一定是:为了重用,便于修改维护!试想,如果我们的十个构建项目都使用了同样的构建编译发布nuget到nuget服务器的命令,我们要分别在十个构建项目中分别写一堆的命令吗,有一天我们需要修改一下nuget服务器的推送密钥,我们需要分别打开不同的构建项目去修改命令参数。在项目很多的情况下会相当复杂。

  作为对比,我们在新增加构建项目的时候,只需要从历史项目复制,然后修改一下解决方案的名称即可。

  我们把命令添加行号进行逐一讲解

  

.netcore mvc docker环境jenkins一键部署(DevOps)

  命令第1/2/3/4/5行都是生命一个变量,后面跟的是变量的值。${变量名} 的写法是取变量的值

  变量的作用都有注释说明,其中2是docker的容器名称

  命令第6行的作用是执行这个相对目录下的一个 DotNetCoreWebPublishToDockerCommon.sh 的shell脚本,并将后面一一获取到的变量作为参数传递到shell脚本里面。

三、编译发布的命令讲解

  我们上一节讲解了调用了一个目录下的shell脚本,那么我们这节就开始剖析这主要的脚本内容(构建过程分解),文章最后我们会将脚本全部放出来。

1、shell脚本的变量读取

  

.netcore mvc docker环境jenkins一键部署(DevOps)

  首先我们脚本的开头便读取了上文传递进来的参数,然后定义了新的变量存他们的值。

  读取参数使用 $变量顺序号 的方式进行读取,这里一定要注意顺序的正确性。

2、定义好存放发布好的项目代码的目录和备份发布内容的目录

  

.netcore mvc docker环境jenkins一键部署(DevOps)

  定义好目录,我们使用 echo 命令输出构建开始的提示信息。

  

.netcore mvc docker环境jenkins一键部署(DevOps)

  每次使用的都是同一个目录,构建之前先使用 rm -rf 命令清空发布目录(删除所有文件)

3、publish发布项目到准备好的目录

.netcore mvc docker环境jenkins一键部署(DevOps)

  该条命令的作用是,使用.netcore自带的 publish 命令,发布 ${JENKINS_HOME}/workspace/${JOB_NAME}/${csprojDir} 目录(拼接的.csproj项目路径)下的项目代码到 -o 的这个目录,当然这个目录是我们上面准备好存储的目录,按照项目名称放在对应的文件夹下。

  /p:Version=1.0.${BUILD_NUMBER} 的命令作用是构建出来的版本号,按照jenkins的任务序列号(BUILD_NUMBER)走。不然得每次修改项目的信息,很麻烦。

  这个序列号就是构建时候自动生成的序列号

  

.netcore mvc docker环境jenkins一键部署(DevOps)

  4、复制需要的配置到发布目录

  

.netcore mvc docker环境jenkins一键部署(DevOps)

  为什么要有这个操作呢?

  为了项目的一些配置安全,比如连接字符串地址,服务器地址等敏感信息,如果都放在了github上,岂不是要被有心之人瞎搞。

  因此,我们自己将敏感信息配置文件放在一个特定的目录,构建的时候自动复制替换项目里面的配置文件。

  一切为了服务器的安全!

四、Docker容器命令详解 1、将旧容器停止,并删除旧镜像

  

.netcore mvc docker环境jenkins一键部署(DevOps)

  docker命令我就不说了吧,有注释。

2、通过Dockerfile创建镜像,并映射端口Run容器

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zywzdy.html