zoukankan      html  css  js  c++  java
  • 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:UsersAdministrator.ssh

    右键Git Bash Here,如下图,生成id_rsa,id_rsa.pub,known_hosts

    右键打开id_rsa.pub,复制文件中的内容:

    在服务器中的C:UsersAdministrator路径下创建.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 FilesWinRARWinRAR" a -r -ep1 "%WORKSPACE%JenkinsPublishBuildsource.zip" "%WORKSPACE%JenkinsPublishBuild"

    下图上传一个批处理文件,以及运行批处理文件,这么做的目的也是无奈之举。

    按照官方的说法,上传文件后,在Exce command会在文件发布之后执行命令,但是实际操作发现,并不是严格按照这个顺序,

    而且每次还无法执行多条命令,这个和网上的做法匹配不上,所以我就将命令写到批处理文件中,将bat文件发布到服务器,再通过执行服务器中的bat文件,进行批处理操作。

    bat脚本如下:

    cd NetCorePublish
    "D:Program Files (x86)WinRARwinrar" 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容器生成,可以访问系统:

  • 相关阅读:
    sqlserver sql优化案例及思路
    mysql执行计划常用说明
    MYSQL 的rownum
    innodb crash
    spring-mybatis源码追踪
    mylyn提交到JIRA的日期格式错误
    [google面试CTCI] 2-1.移除链表中重复元素
    [google面试CTCI] 2-0.链表的创建
    [google面试CTCI] 1-8.判断子字符串
    [google面试CTCI] 1-7.将矩阵中特定行、列置0
  • 原文地址:https://www.cnblogs.com/wanglg/p/8630480.html
Copyright © 2011-2022 走看看