Windows系统下使用Jenkins 自动发布 .NET core到Linux平台下Docker
- 准备工作(安装过程可以百度,已安装的可以跳过)
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
图例:


- 检查环境是否就绪
a) Jenkins浏览器打开是否正常,默认打开地址:http://localhost:8080/。
b) 检查.NET core SDK是否安装好, 打开命令窗口,输入【dotnet】命令回车,会出来基本信息
图例:

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

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

- 整体思路大纲
a) 本地运行单元测试(没有可以跳过)->发布->上传linux服务器->生成docker镜像->docker容器运行
- 开始干活
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的更多相关文章
- Windows系统下Oracle每天自动备份
linux和unix下面使用shell可以很方便实现,如果windows环境下可以结合计划任务实现 创建备份目录d:\backup, 创建批处理命令Bak.bat,编写备份脚本 exp user/pa ...
- windows系统下构建Jenkins持续集成
环境准备 windows10+tomcat+python3.x(安装方法自行百度) 安装Jenkins 从https://jenkins.io/download/ 下载war包 将war包放到tomc ...
- Windows系统下搭建Jenkins环境
1. 安装JDK JDK下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.ht ...
- 手把手教你用Jenkins自动发布dotnet core程序
Jenkins部分 首先,我们要有个Jenkins咯,下载链接:https://jenkins.io/download/ 我们安装官网教程安装好jenkins,安装教程略.... 嗯?不是说好手把手么 ...
- Linux下安装Jenkins并且发布.net core
一,基础环境 1,操作系统:CentOS 7.3 2,Docker version 18.09.6 docker安装参考:https://www.cnblogs.com/liuxiaoji/p/110 ...
- windows系统下jenkins环境搭建与基本使用
一. windows 系统下搭建jenkins环境 1.1 jenkins环境搭建和构建job流程图 1.2 安装jdk JDK下载地址: http://www.oracle.com/technet ...
- windows系统下安装MySQL
可以运行在本地windows版本的MySQL数据库程 序自从3.21版以后已经可以从MySQL AB公司获得,而且 MYSQL每日的下载百分比非常大.这部分描述在windows上安装MySQL的过程. ...
- Windows下 安装Jenkins 并发布至docker 实战
网上的教程基本都是Linux系统下安装Jenkins,并且发布到Linux系统下的docker中, 于是打算在全部windows的环境中,完成Jenkins的持续集成功能. 环境: 服务器环境: wi ...
- Delphi - Windows系统下,Delphi调用API函数和7z.dll动态库,自动把文件压缩成.tar.gz格式的文件
项目背景 应欧美客户需求,需要将文件压缩成.tar.gz格式的文件,并上传给客户端SFTP服务器. 你懂的,7-Zip软件的显著特点是文件越大压缩比越高,在Linux系统上相当于我们Windows系统 ...
随机推荐
- vi/vim键盘图-
vi/vim键盘图-----又一张桌面背景好图 也许还是有很多人不能愿意用CLI的vi/Vim来写东西,不过,当你真的习惯了,它的高效性就是不可估量了.下面的这张图,一看就明白了,从此,学习变的不再艰 ...
- YYHS-怎样更有力气
题目描述 OI大师抖儿在夺得银牌之后,顺利保送pku.这一天,抖儿问长者:"我虽然已经保送了,但我的志向是为国家健康工作五十年.请问我应该怎样变得更有力气?" 长者回答:&quo ...
- 201521123091 《Java程序设计》第2周学习总结
Java 第二周总结 第二周的作业. 一个简陋的目录 1.本章学习总结 2.Java Q&A 3.使用码云管理Java代码 4.PTA实验 5.小任务 1.本章学习总结 基本数据类型 Stri ...
- 201521123003《Java程序设计》第6周学习总结
1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图,对面向对象思想进行一个总结. 注1:关键词与内容不求多,但概念之间的联系要清晰,内容覆盖 ...
- Java-判断一个数是不是素数
import java.util.Scanner; /** * @author 薛定谔的猫 * java判断一个数是不是素数 * * 素数又称质数,是指在一个大于1的自然数中,除了1和本身之外,不能被 ...
- 创建maven项目pom.xml第一行报错
之前也创建过几次maven项目,也是第一行报错,之前直接是右键项目强制更新maven好像就解决了,这次遇见这个问题使用这个方法好像不起作用了,给的一堆英文报错又看不懂,幸好在网上看见路人甲大神提示,根 ...
- HDU-3032
Problem Description Nim is a two-player mathematic game of strategy in which players take turns remo ...
- angular学习笔记01
angular.js路由功能 用于实现单页应用 //html 代码 <div ng-view></div> //js代码 angular.module('myM1',['ng' ...
- 从Leetcode的Combination Sum系列谈起回溯法
在LeetCode上面有一组非常经典的题型--Combination Sum,从1到4.其实就是类似于给定一个数组和一个整数,然后求数组里面哪几个数的组合相加结果为给定的整数.在这个题型系列中,1.2 ...
- Linux 文件查找
在Linux系统的查找相关的命令: which 查看可执行文件的位置 whereis 查看文件的位置 locate 配合数据库查看文件位置 find 实际搜寻硬盘查询文件名称 whereis wher ...