网上的教程基本都是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 实战的更多相关文章

  1. Jenkins持续集成(上)-Windows下安装Jenkins

    环境:Windows 2008 R2.Jenkins2.235.1: 概要 前面写过一篇文章,<自动发布-asp.net自动发布.IIS站点自动发布(集成SLB.配置管理.Jenkins)> ...

  2. windows下安装jenkins初级(1)

    这里是基于Windows系统下安装Jenkins 首先下载jenkins 下载地址:https://jenkins.io/download/ 选择所需要的系统 我这里选择Windows 开始安装 一直 ...

  3. windows下安装jenkins初级(2)

    这里是基于gitlab拉取代码     gitlab暂时先不多介绍     我们需要把git和gitlab连接起来方便拉取代码     所以需要git的ssh公匙和私匙     首先在   https ...

  4. Windows下安装jenkins,关闭jenkins,修改jenkins端口号

    1.Jenkins安装部署 在官网下载Jenkins: https://jenkins.io/download/thank-you-downloading-windows-installer-stab ...

  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

    1.在机子上安装jdk8 2.下载jenkins.war在里面可以选择任意版本的war包,lastest为最新的,推荐下载! 官网地址:https://jenkins.io/download/ 3.打 ...

  7. 在windows下使用jenkins部署docker容器

    在windows下使用jenkins部署docker容器最近在学习jenkins,docker部署来实现集成部署,所以想在windows下面实现测试,但是发现在windows下docker支持不是很好 ...

  8. Docker windows下安装并搭建Nodejs的webapp

    一.关于Docker 什么是Docker?Docker 采用go语言编写,是一个开源的应用容器引擎.让开发者可以快速打包他们的应用以及依赖包到一个封装的可移植的容器Image中,然后发布到任何流行的机 ...

  9. Docker学习系列(一):windows下安装docker(转载)

    本文目录如下: windows按照docker的基本要求 具体安装步骤 开始使用 安装远程连接工具连接docker 安装中遇到的问题 Docker的更新 Docker中的jupyter windows ...

随机推荐

  1. redhat6.4提权Ⅱ

    本次演示只针对redhat6.4, 其他的系统不知道有没有效果. 下面开始吧 建立普通用户并授予密码 [root@localhost yum.repos.d]# useradd test [root@ ...

  2. 剑指offer(26)二叉搜索树与双向链表

    题目描述 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表.要求不能创建任何新的结点,只能调整树中结点指针的指向. 题目分析 要生成排序的双向列表,那么只能是中序遍历,因为中序遍历才能从小到 ...

  3. 剑指offer(50)数组中重复的数字

    题目描述 在一个长度为n的数组里的所有数字都在0到n-1的范围内. 数组中某些数字是重复的,但不知道有几个数字是重复的.也不知道每个数字重复几次.请找出数组中任意一个重复的数字. 例如,如果输入长度为 ...

  4. Codeforces 932G Palindrome Partition - 回文树 - 动态规划

    题目传送门 通往???的传送点 通往神秘地带的传送点 通往未知地带的传送点 题目大意 给定一个串$s$,要求将$s$划分为$t_{1}t_{2}\cdots t_{k}$,其中$2\mid k$,且$ ...

  5. linux --- 5. nginx 初始

    一. 安装nginx 1.安装nginxz之前的依赖包 yum install gcc patch libffi-devel python-devel zlib-devel bzip2-devel o ...

  6. linux基础之grep

    grep: Global search REgular expression and Print out the line 作用: 文本搜索工具,根据用户指定的模式对目标文本逐行进行匹配检查,打印匹配 ...

  7. Vue监听属性的变化

    监听属性的变化watch: { counter: function (nval, oval) { alert('计数器值的变化 :' + oval + ' 变为 ' + nval + '!') }}

  8. swagger2的接口文档

    以前见过一个swagger2的接口文档,特别好用,好看,对接口中入参描述的很详细:适合用于项目的开发 后来自己做项目的时候,没有找到这个swagger版本 <dependency> < ...

  9. guxh的python笔记七:抽象基类

    1,鸭子类型和白鹅类型 1.1,白鹅类型 白鹅类型对接口有明确定义,比如不可变序列(Sequence),需要实现__contains__,__iter__,__len__,__getitem__,__ ...

  10. python学习(八)