1. 准备工作(安装过程可以百度,已安装的可以跳过)

a)     安装Jenkins,安装包下载地址:http://mirrors.tuna.tsinghua.edu.cn/jenkins/windows-stable/jenkins-2.73.1.zip

b)     安装 .NET core SDK,官网地址:https://www.microsoft.com/net/core#windowscmd

c)      Linux 服务器一台并且安装好 Docker

d)     好压软件,下载地址:http://sw.bos.baidu.com/sw-search-sp/software/027b0d91ba34c/haozip_5.9.4.10795.exe。注意这不是广告,我们用他来压缩我们本地发布好的源码,因为他支持cmd命令,当然你也可以用其他的代替。为了让它支持cmd命令我们还需要修改一下本地环境变量,右键【我的电脑】->【高级系统设置】->【高级】->【环境变量设置】->选择系统变量【Path】->点击【编辑】->点击【新建】,把好压的安装目录放进去。我好压的安装目录是:C:\Program Files\2345Soft\HaoZip

图例:

  1. 检查环境是否就绪

a)     Jenkins浏览器打开是否正常,默认打开地址:http://localhost:8080/

b)     检查.NET core SDK是否安装好, 打开命令窗口,输入【dotnet】命令回车,会出来基本信息

图例:

c)      检查 Linux 服务器一台并且安装好 Docker,连接Linux命令窗口输入【docker】,出来很多信息就对了。

图例:

d)     检查好压软件是否安装好,windows下打开命令窗口,输入【HaoZipC】,会出现说明。

图例:

  1. 整体思路大纲

a)     本地运行单元测试(没有可以跳过)->发布->上传linux服务器->生成docker镜像->docker容器运行

  1. 开始干活

a)     安装Jenkins插件,浏览器打开Jenkins,默认地址:http://localhost:8080/,进入【系统管理-】>插件管理->可选插件->输入插件名称->勾选需要插件->点击【直接安装】。

需要安装的插件:

Hudson SCP publisher plugin 上传文件插件

Publish Over SSH 连接liunx服务器执行名称插件

Environment Injector Plugin 之定义变量存放插件

图例:

b)     Jenkins插件设置,进入系统管理->系统设置,

找到【SCP repository hosts】上传插件设置位置:

Hostname:远程liunx服务器 IP地址

Port:端口(默认22)

Root Repository Path:文件存放目录

User Name:登入用户名

Password/Passphrase:密码

图例:

找到【SSH Servers】连接liunx服务器插件设置:

Name:别名,可以结合业务取

Hostname:远程liunx服务器 IP地址

Username:登入用户名

Remote Directory:连接默认工作目录

Passphrase / Password:密码

Port:连接端口(默认22)

图例:

【点击高级按钮】

【勾选】Use password authentication, or use a different key

c)      创建项目,点击【新建】->输入项目名称->选择【构建一个自由风格的软件项目】->点击【OK】

图例:

d)     配置项目,点击【源代码管理】->选择【Subversion】

图例:

选择【构建环境】->勾选【Inject environment variables to the build process】,存放变量可以不用

图例:

选择【构建】->点击【增加构建步骤】->选择【Execute Windows batch command】

图例:

现在开始我们可以按照思路大纲来写命令了。

1,运行测试脚本:

:: 切换CMD编码

chcp 65001

:: 切换目录

cd ./Boss.Web.Test/

:: 还原nuget包

dotnet restore

:: 运行测试

dotnet test

图例:

2,发布压缩打包命令

:: 切换CMD编码

chcp 65001

:: 切换目录

cd ./Boss.Web/

:: 还原nuget包

dotnet restore

:: 编译

dotnet build

:: 删除之前发布文件

cd ./bin

rd /s /q web-publish

del web-publish.zip

cd ..

:: 发布

dotnet publish -o ./bin/web-publish

:: 删除配置文件

cd ./bin/web-publish

rd /s /q config

cd ..

:: 压缩 好压软件

HaoZipC a -tzip web-publish.zip "web-publish\*" -r

图例:

到这边本地构建工作做完了。

选择【构建后操作】->点击【增加构建后操作步骤】->选择【Publish artifacts to SCP Repository】,准备上传文件到服务器

图例:

下拉选择要上传服务器地址(刚才配置过的都在里面),点击【增加】,第一个上传的是我们的源代码压缩包,第二个是我们要生成docker的依赖文件

图例:

文件目录查看

上传文件好了,接下来我们需要远程连接到linux服务器

选择【构建后操作】->点击【增加构建后操作步骤】->选择【Send build artifacts over SSH】

图例:

远程连接linux执行批处理命令,这个批处理命令我们需要2个。

1,处理之前发布内容,并且创建新docker镜像( ${自定义变量},可以换成字符)。

# 工作目录

WORK_DIR="/root/boss-deploy/web/";

cd ${WORK_DIR}

# 删除原有发布文件夹

rm -rf web-publish;

# 解压

unzip -o web-publish.zip

#删除文件压缩包

rm -f web-publish.zip;

#复制Dockerfile文件,到源码目录下

cp Dockerfile web-publish/Dockerfile

#切换生成目录

cd web-publish/

#备份镜像

#停止容器

docker stop ${DOCKER_CONTAINER_NAME};

#删除容器

docker rm ${DOCKER_CONTAINER_NAME};

#删除镜像

docker rmi $(docker images | grep ${DOCKER_IMAGE_NAME} | awk '{print $3}' | sort -r);

#创建镜像

docker build -t ${DOCKER_IMAGE_NAME}:${BOSS_VERSION}${SVN_REVISION} ./;

图例:

2,依赖刚创建的镜像,运行容器

#运行容器命令

docker run -d -v 服务器目录:docker内部目录 -p 8001:8001 --name 容器名称 镜像名称:镜像版本(没有特定版本可以不要)

图例:

到此点击【保存】,所以的配置就完成了。

返回首页看到刚配置好的数据,点击后面的构建就行了。

本文章到这里就结束了,我也是第一次研究,如果有问题可以留言,大家相互学习进步,谢谢!

Windows系统下使用Jenkins 自动发布 .NET core到Linux平台下Docker的更多相关文章

  1. Windows系统下Oracle每天自动备份

    linux和unix下面使用shell可以很方便实现,如果windows环境下可以结合计划任务实现 创建备份目录d:\backup, 创建批处理命令Bak.bat,编写备份脚本 exp user/pa ...

  2. windows系统下构建Jenkins持续集成

    环境准备 windows10+tomcat+python3.x(安装方法自行百度) 安装Jenkins 从https://jenkins.io/download/ 下载war包 将war包放到tomc ...

  3. Windows系统下搭建Jenkins环境

    1. 安装JDK JDK下载地址:  http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.ht ...

  4. 手把手教你用Jenkins自动发布dotnet core程序

    Jenkins部分 首先,我们要有个Jenkins咯,下载链接:https://jenkins.io/download/ 我们安装官网教程安装好jenkins,安装教程略.... 嗯?不是说好手把手么 ...

  5. Linux下安装Jenkins并且发布.net core

    一,基础环境 1,操作系统:CentOS 7.3 2,Docker version 18.09.6 docker安装参考:https://www.cnblogs.com/liuxiaoji/p/110 ...

  6. windows系统下jenkins环境搭建与基本使用

    一. windows 系统下搭建jenkins环境 1.1 jenkins环境搭建和构建job流程图 1.2 安装jdk JDK下载地址:  http://www.oracle.com/technet ...

  7. windows系统下安装MySQL

    可以运行在本地windows版本的MySQL数据库程 序自从3.21版以后已经可以从MySQL AB公司获得,而且 MYSQL每日的下载百分比非常大.这部分描述在windows上安装MySQL的过程. ...

  8. Windows下 安装Jenkins 并发布至docker 实战

    网上的教程基本都是Linux系统下安装Jenkins,并且发布到Linux系统下的docker中, 于是打算在全部windows的环境中,完成Jenkins的持续集成功能. 环境: 服务器环境: wi ...

  9. Delphi - Windows系统下,Delphi调用API函数和7z.dll动态库,自动把文件压缩成.tar.gz格式的文件

    项目背景 应欧美客户需求,需要将文件压缩成.tar.gz格式的文件,并上传给客户端SFTP服务器. 你懂的,7-Zip软件的显著特点是文件越大压缩比越高,在Linux系统上相当于我们Windows系统 ...

随机推荐

  1. 团队作业4——第一次项目冲刺(Alpha版本)

    Deadline: 2017-4-30 22:00PM,以博客发表日期为准 评分基准: 按时交 - 有分,检查的项目包括后文的两个个方面 七天的敏捷冲刺 日志的集合贴 晚交 - 0分 迟交一周以上 - ...

  2. 201521123091 《Java程序设计》第9周学习总结

    Java 第九周总结 第九周的作业. 目录 1.本章学习总结 2.Java Q&A 3.码云上代码提交记录及PTA实验总结 1.本章学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异 ...

  3. 201521123107 《Java程序设计》第14周学习总结

    第14周-数据库 1.本周学习总结 2.书面作业 1. MySQL数据库基本操作 建立数据库,将自己的姓名.学号作为一条记录插入.(截图,需出现自己的学号.姓名) 在自己建立的数据库上执行常见SQL语 ...

  4. 201521123082《Java程序设计》第2周学习总结

    201521123082<Java程序设计>第2周学习总结 标签(空格分隔): Java 1.本周学习总结 巩固了类型转换的相关细节 初步认识了类和对象,使用Java撰写程序几乎都在使用对 ...

  5. dup和dup2详解

    C语言中dup和dup2函数的不同和使用 发表时间: 2012年11月15日 | 作者: 陈杰斌 | 所属分类: C语言 | 评论: 0 | 浏览: 1024 在unix高级编程中有介绍dup和dup ...

  6. Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'zhongfucheng.user' does

    编写第一个Hibernate程序的时候,就发现出现了错误 Exception in thread "main" org.hibernate.exception.SQLGrammar ...

  7. mysql5.6.24的安装与简单使用

    1, 下载绿色版Mysql5.6.24 http://dlsw.baidu.com/sw-search-sp/soft/ea/12585/mysql-5.6.24-win32.1432006610.z ...

  8. 简洁灵活的前端框架------BootStrap

      前  言 Bootstrap,来自 Twitter,是目前很受欢迎的前端框架.Bootstrap 是基于 HTML.CSS.JAVASCRIPT 的,它简洁灵活,使得 Web 开发更加快捷.[1] ...

  9. 原型模式和基于原型继承的js对象系统

    像同样基于原型编程的Io语言一样,javascript在原型继承方面,实现原理和Io非常类似,javascript也遵守这些原则 所有数据都是对象 要得到一个对象,不是通过实例化类,而是找到一个对象作 ...

  10. .NetCore之下载文件

    本篇将和大家分享的丝.NetCore下载文件,常见的下载有两种:A标签直接指向下载文件地址和post或get请求后台输出文件流的方式,本篇也将围绕这两种来分享:如果对您有好的帮助,请多多支持. 允许站 ...