网上的教程基本都是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. 谷歌技术"三宝"之MapReduce

    江湖传说永流传:谷歌技术有"三宝",GFS.MapReduce和大表(BigTable)! 谷歌在03到06年间连续发表了三篇很有影响力的文章,分别是03年SOSP的GFS,04年 ...

  2. Codeforces 17E Palisection - Manacher

    题目传送门 传送点I 传送点II 传送点III 题目大意 给定一个串$s$询问,有多少对回文子串有交. 好像很简单的样子. 考虑能不能直接求,感觉有点麻烦.因为要考虑右端点在当前回文子串内还有区间包含 ...

  3. GEC6818交叉开发环境搭建拟稿

    为manjaro linux配置交叉工具链 为gec6818开发版下载一个arm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 ...

  4. HDU4745--区间DP+回文串

    这题的题意为,给你一个环状的字符串,有两只兔子分别从某任意的石头上开始跳跃.一只顺时针跳.一只逆时针跳.两只兔子每一次落脚处石头的质量都相同.兔子要一步一步的跳,且不能跳到之前跳到过的地方.总的来说, ...

  5. Asp.net MVC5 学习笔记

    控制器(controller)主要负责响应用户的输入,并且在响应时修改模型(Model).通过这种方式,MVC模式中的控制器主要关注的是应用程序流.输入数据的处理,以及对相关视图(View)输出数据的 ...

  6. C#中get和set

    释一: 属性的访问器包含与获取(读取或计算)或设置(写)属性有关的可执行语句.访问器声明可以包含 get 访问器或 set 访问器,或者两者均包含.声明采用下列形式之一: get {} set {} ...

  7. R语言环境变量的设置 环境设置函数为options()

    环境设置函数为options(),用options()命令可以设置一些环境变量,使用help(options)可以查看详细的参数信息. 1. 数字位数的设置,options(digits=n),n一般 ...

  8. synchronized同步方法《二》

    1.synchronized方法和锁对象 (1).验证线程锁的是对象 代码如下: 1.1创建一个MyObject类: package edu.ymm.about_thread4; public cla ...

  9. Lab 9-1

    Analyze the malware found in the file Lab09-01.exe using OllyDbg and IDA Pro to answer the following ...

  10. mysql查询今天、昨天、上周

    mysql查询今天.昨天.上周 今天 select * from 表名 where to_days(时间字段名) = to_days(now()); 昨天 SELECT * FROM 表名 WHERE ...