网上的教程基本都是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. Linux cached过高问题

    1. cached主要负责缓存文件使用, 日志文件过大造成cached区内存增大把内存占用完 . Free中的buffer和cache:(它们都是占用内存):buffer : 作为buffer cac ...

  2. DevOps的故事(如何整合开发和运维?)

    在一个与我们平行的世界中,有一个软件开发公司.这个公司所做的产品用户量近期增长的十分迅猛,但是令CTO头疼的是公司的两大部门:开发部和运维部近期也是“掐”得厉害.为解决这个问题,CTO决定倒入现在十分 ...

  3. SELinux/SEAndroid 实例简述(二) TE语言规则【转】

    本文转载自:https://blog.csdn.net/shell812/article/details/54930246 版权声明:本文为博主原创文章,未经博主允许不得转载.    https:// ...

  4. newcoder 小A的柱状图(单调栈)题解

    题目描述 柱状图是有一些宽度相等的矩形下端对齐以后横向排列的图形,但是小A的柱状图却不是一个规范的柱状图,它的每个矩形下端的宽度可以是不相同的一些整数,分别为a[i] 每个矩形的高度是h[i] ,现在 ...

  5. promise封装的ajax

    var  myNewAjax=function(url){ return new Promise(function(resolve,reject){ var xhr = new XMLHttpRequ ...

  6. UnicodeMath数学公式编码_翻译(Unicode Nearly Plain - Text Encoding of Mathematics Version 3)

    目录 完整目录 1. 简介 2. 编码简单数学表达式 2.1 分数 2.2 上标和下标 2.3 空白(空格)字符使用 3. 编码其他数学表达式 3.1 分隔符 强烈推荐本文简明版UnicodeMath ...

  7. Promise 异步函数的加上外壳终止Promise

    //promise异步函数的请求终止 export default function markCancleble(promise){ let hasCanceled_ = false ; const ...

  8. fail2ban 使用

    ============= fail2ban install ============= yum update && yum install epel-release yum -y i ...

  9. django中form组件

    Form介绍 我们之前在HTML页面中利用form表单向后端提交数据时,都会写一些获取用户输入的标签并且用form标签把它们包起来. 与此同时我们在好多场景下都需要对用户的输入做校验,比如校验用户是否 ...

  10. [poj P2976] Dropping tests

    [poj P2976] Dropping tests Time Limit: 1000MS  Memory Limit: 65536K Description In a certain course, ...