网上的教程基本都是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. 剑指offer(1)二维数组的查找

    限制今天起开始也刷剑指offer啦,一步一步来. 题目描述 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数, ...

  2. P3346 [ZJOI2015]诸神眷顾的幻想乡

    思路 注意到叶子节点(度数为1)只有20个,可以分别以这20个节点为根,把所有子串插入SAM中,统计最后的本质不同的子串个数 所以就是广义SAM了 然后注意要判断一下有无重复插入 代码 #includ ...

  3. Learning-MySQL【6】:视图、触发器、存储过程、函数、流程控制

    一.视图 视图就是通过查询得到一张虚拟表,然后保存下来,下次用的直接使用即可.使用视图我们可以把查询过程中的临时表摘出来,用视图去实现,这样以后再想操作该临时表的数据时就无需重写复杂的 SQL 语句了 ...

  4. malloc/free 和 new/delete

    (本文参考于网上) 首先两者都可用于申请动态内存和释放内存。 对于非内部数据类型的对象而言,只用malloc/free无法满足动态对象的要求.对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执 ...

  5. HDFS简单编程实例:文件合并

    下图显示了HDFS文件系统中路径为“localhost:50070/explorer.html#/user/hadoop”的目录中所有的文件信息: 对于该目录下的所有文件,我们将执行以下操作: 首先, ...

  6. java基础 (二)之HashMap,HashTable,ConcurrentHashMap区别

    HashTable: put方法加了同步锁synchronized,底层数组+链表实现,无论key还是value都不能为null,线程安全,实现线程安全的方式是在修改数据时锁住整个HashTable, ...

  7. CentOS7.5 Python3安装pip报错:ModuleNotFoundError: No module named '_ctypes' --Python3

    1.问题:pyhontModuleNotFoundError: No module named '_ctypes'  操作系统:CentOS7.5 安装完Pyhotn3后(如何安装Python3,安装 ...

  8. 『TensorFlow』pad图片

    tf.pad()文档如下, pad(tensor, paddings, mode='CONSTANT', name=None, constant_values=0)    Pads a tensor. ...

  9. 打造springboot高性能服务器(spring reactor的使用)

    推荐:https://www.cnblogs.com/ivaneye/p/5731432.htmlpom依赖: <dependency> <groupId>org.spring ...

  10. 关于window 图片系统功能

    直接选择文件悬浮  分辨率 大小 修改时间 文件选择较少的 可以选择反选  找到自己想要的 大小排序 找到最大的压缩  名称排序 同一类的图片  按时间排序找自己刚修改的图片 文档类预览