Windows下 安装Jenkins 并发布至docker 实战
网上的教程基本都是Linux系统下安装Jenkins,并且发布到Linux系统下的docker中,
于是打算在全部windows的环境中,完成Jenkins的持续集成功能。
环境:
服务器环境:
windows 10 专业版
docker for windows
SSH Server on Windows(安装文件以及配置参照https://winscp.net/eng/docs/guide_windows_openssh_server#fnt2)
Jenkins环境:
Jenkins下载:https://mirrors.tuna.tsinghua.edu.cn/jenkins/windows-stable/jenkins-2.73.1.zip
SSH:由于我之前安装了Git,默认已经安装SSH工具
Jenkins安装完成后(参照博客园有介绍Jenkins安装的文章),打开web管理界面
http://localhost:8080/ (如果打不开,则可能是由于端口冲突,Jenkins服务没有启动。要么更换端口,要么终止占用该端口的进程,重启服务。)
开始配置Jenkins:
1.插件安装:
系统初始化启动过程中已经安装了部分插件,如果需要安装新插件则进入
系统管理->插件管理->可选插件进行直接安装,其中SSH插件必须安装

2.配置SSH Server
在系统管理->系统设置 拉到最下面
1)生成私钥与公钥
找到.ssh所在路径,通常是C:\Users\Administrator\.ssh
右键Git Bash Here,如下图,生成id_rsa,id_rsa.pub,known_hosts


右键打开id_rsa.pub,复制文件中的内容:
在服务器中的C:\Users\Administrator路径下创建.ssh 文件夹并在文件夹中创建authorized_keys文件,把id_rsa.pub中的内容覆盖到authorized_keys
网上说的ssh-copy-id命令我这里不知道为什么不好用,所以就手动覆盖。
在服务器中可以使用以下指令创建文件


在Path to Key 配置私钥地址:

以上配置完成后,电极Test Configuration,如果没有问题,会提示 Success
以上配置完成后,开始进行新建任务,并进行配置




我使用的事git管理源代码

配置构建
我们会用到以下两个插件

脚本如下
//通过git取得源代码到工作区后,在工作区进行代码编译发布JenkinsPublishBuild文件夹中,WebGeestar是web项目所在的文件夹
dotnet restore "%WORKSPACE%"
dotnet build "%WORKSPACE%"
dotnet publish "%WORKSPACE%\WebGeestar" -o "%WORKSPACE%\JenkinsPublishBuild"
//将发布后的文件进行打包用于上传到远程服务器,注意:Docker文件已经在WebGeestar文件夹中,用于后续的Docker镜像创建
"C:\Program Files\WinRAR\WinRAR" a -r -ep1 "%WORKSPACE%\JenkinsPublishBuild\source.zip" "%WORKSPACE%\JenkinsPublishBuild"

下图上传一个批处理文件,以及运行批处理文件,这么做的目的也是无奈之举。
按照官方的说法,上传文件后,在Exce command会在文件发布之后执行命令,但是实际操作发现,并不是严格按照这个顺序,
而且每次还无法执行多条命令,这个和网上的做法匹配不上,所以我就将命令写到批处理文件中,将bat文件发布到服务器,再通过执行服务器中的bat文件,进行批处理操作。
bat脚本如下:
cd NetCorePublish
"D:\Program Files (x86)\WinRAR\winrar" x -o+ source.zip
cd JenkinsPublishBuild
docker build -t wlgneturl/autowebfile001 .
docker stop containerfile
docker rm containerfile
docker run --name containerfile -d -p 5001:5001 wlgneturl/autowebfile001

以上配置完成后,点击左下角的保存,返回控制面板,并点击立即构建:


查看构建过程的log

此时docker容器生成,可以访问系统:

Windows下 安装Jenkins 并发布至docker 实战的更多相关文章
- Jenkins持续集成(上)-Windows下安装Jenkins
环境:Windows 2008 R2.Jenkins2.235.1: 概要 前面写过一篇文章,<自动发布-asp.net自动发布.IIS站点自动发布(集成SLB.配置管理.Jenkins)> ...
- windows下安装jenkins初级(1)
这里是基于Windows系统下安装Jenkins 首先下载jenkins 下载地址:https://jenkins.io/download/ 选择所需要的系统 我这里选择Windows 开始安装 一直 ...
- windows下安装jenkins初级(2)
这里是基于gitlab拉取代码 gitlab暂时先不多介绍 我们需要把git和gitlab连接起来方便拉取代码 所以需要git的ssh公匙和私匙 首先在 https ...
- Windows下安装jenkins,关闭jenkins,修改jenkins端口号
1.Jenkins安装部署 在官网下载Jenkins: https://jenkins.io/download/thank-you-downloading-windows-installer-stab ...
- Linux下安装Jenkins并且发布.net core
一,基础环境 1,操作系统:CentOS 7.3 2,Docker version 18.09.6 docker安装参考:https://www.cnblogs.com/liuxiaoji/p/110 ...
- windows下安装Jenkins
1.在机子上安装jdk8 2.下载jenkins.war在里面可以选择任意版本的war包,lastest为最新的,推荐下载! 官网地址:https://jenkins.io/download/ 3.打 ...
- 在windows下使用jenkins部署docker容器
在windows下使用jenkins部署docker容器最近在学习jenkins,docker部署来实现集成部署,所以想在windows下面实现测试,但是发现在windows下docker支持不是很好 ...
- Docker windows下安装并搭建Nodejs的webapp
一.关于Docker 什么是Docker?Docker 采用go语言编写,是一个开源的应用容器引擎.让开发者可以快速打包他们的应用以及依赖包到一个封装的可移植的容器Image中,然后发布到任何流行的机 ...
- Docker学习系列(一):windows下安装docker(转载)
本文目录如下: windows按照docker的基本要求 具体安装步骤 开始使用 安装远程连接工具连接docker 安装中遇到的问题 Docker的更新 Docker中的jupyter windows ...
随机推荐
- Python 协程了解
协程: 1.协程,又称微线程,纤程.英文名Coroutine. 2.协程是跑在线程内的单线程,串行没有锁. 3.协程是一种用户态的轻量级线程. 4.协程CPU是访问不到的,协程是用户自己控制的. ...
- 【题解】Luogu P3287 [SCOI2014]方伯伯的玉米田
原题传送门 一眼就能看出来这是一道dp题 显而易见每次操作的右端点一定是n,每株玉米被拔高的次数随位置不下降 用f(i,j) 表示以第i 株玉米结尾它被拔高了j 次的最长序列长度. \(f(i,j)= ...
- 自制操作系统Antz(5)——深入理解保护模式与进入方法
Antz系统更新地址: https://www.cnblogs.com/LexMoon/category/1262287.html Linux内核源码分析地址:https://www.cnblogs. ...
- 剑指offer(49)把字符串转换成整数。
题目描述 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数. 数值为0或者字符串不是一个合法的数值则返回0 输入描述: 输入一个字符串,包括数字字母符号,可以为空 输出描述: 如果是合法 ...
- shell编程(一)之变量
变量:命名的内存空间 bash的变量种类: 根据变量的生效范围等标准 本地变量: 生效范围为当前shell进程:对当前shell之外的其他shell进程,包括当前shell的子shell进程均无效 环 ...
- centos7安装bbr
centos7安装bbr 安装 sudo wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.s ...
- [Angular] 'providedIn' for service
There is now a new, recommended, way to register a provider, directly inside the @Injectable() decor ...
- 路由表flags的U值引起的能ping通网关,ping不通其它网段的案例
故障的: 正常的: 初步分析: 看路由表的flags ,之前故障时是U.现在正常的是UG查了下说明,应该是这个原因.U — 路由是活动的G — 路由指向网关
- POJ3070 斐波那契数列 矩阵快速幂
题目链接:http://poj.org/problem?id=3070 题意就是让你求斐波那契数列,不过n非常大,只能用logn的矩阵快速幂来做了 刚学完矩阵快速幂刷的水题,POJ不能用万能头文件是真 ...
- linux中pam模块
https://www.cnblogs.com/ilinuxer/p/5087447.html linux中pam模块 一.pam简介 Linux-PAM(linux可插入认证模块)是一套共享库,使本 ...