a) 安装Jenkins,安装包下载地址:http://mirrors.tuna.tsinghua.edu.cn/jenkins/windows-stable/jenkins-2.73.1.ziplinux
b) 安装 .NET core SDK,官网地址:https://www.microsoft.com/net/core#windowscmdweb
c) Linux 服务器一台而且安装好 Dockerdocker
d) 好压软件,下载地址:http://sw.bos.baidu.com/sw-search-sp/software/027b0d91ba34c/haozip_5.9.4.10795.exe。注意这不是广告,咱们用他来压缩咱们本地发布好的源码,由于他支持cmd命令,固然你也能够用其余的代替。为了让它支持cmd命令咱们还须要修改一下本地环境变量,右键【个人电脑】->【高级系统设置】->【高级】->【环境变量设置】->选择系统变量【Path】->点击【编辑】->点击【新建】,把好压的安装目录放进去。我好压的安装目录是:C:\Program Files\2345Soft\HaoZipwindows
图例:浏览器
a) Jenkins浏览器打开是否正常,默认打开地址:http://localhost:8080/。服务器
b) 检查.NET core SDK是否安装好, 打开命令窗口,输入【dotnet】命令回车,会出来基本信息单元测试
图例:学习
c) 检查 Linux 服务器一台而且安装好 Docker,链接Linux命令窗口输入【docker】,出来不少信息就对了。测试
图例:ui
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 容器名称 镜像名称:镜像版本(没有特定版本能够不要)
图例:
到此点击【保存】,因此的配置就完成了。
返回首页看到刚配置好的数据,点击后面的构建就好了。
本文章到这里就结束了,我也是第一次研究,若是有问题能够留言,你们相互学习进步,谢谢!