zoukankan      html  css  js  c++  java
  • Jenkins docker 一键发布 (二)

    这一篇讲述,如何上传并启动 docker

    一,下载 Publish Over SSH 插件

    进入 Manager Jenkins -->Manager Plugins 

    搜索 publish over ssh 插件

    (PS:如果报错,

    java.net.SocketTimeoutException: connect timed out
    那需要到  jenkins文件夹中,找到  hudson.model.UpdateCenter.xml  文件。

    然后修改将  <url>https://updates.jenkins.io/update-center.json</url>  修改为 http

    二,配置SSH

    在配置中,就能找到。

    第一部分:

    第二部分:

    第三部分:

    测试通过的话,应该就没问题了。

    三,构建环境:

    我们回到testpublish的配置页面

    选中 Send files or execute commands over SSH before the build starts

    在Exec command 中,我们停止容器,

    并且删除了镜像和容器,然后倒入了父镜像

    (由于我的mycentoscn.tar在docker目录下,所以需要cd docker)

    代码如下:

    docker-compose stop
    docker rm -f  $(docker ps -aq)
    docker rmi -f  $(docker images -aq)
    cd docker
    docker load -i mycentoscn.tar

    四,构建

    我们直接使用docker builder

    这主要是一个maven打包和上传的过程。

    代码如下:(每个docker:build都是一个微服务)

    setlocal
    set "deploy_dir=%cd%"
    echo "%deploy_dir%"
    set "parent_dir=%cd%"
    echo "%parent_dir%"
    cd %deploy_dir%
     
    echo "maven compile starting"
    call mvn  -f %parent_dir% clean install
    echo "maven compile completed"
     
    call mvn -f %parent_dir%/springCloud.registry docker:build  
    call mvn -f %parent_dir%/springCloud.config docker:build
    call mvn -f %parent_dir%/springCloud.zuul docker:build
    call mvn -f %parent_dir%/kps.webUI docker:build
    call mvn -f %parent_dir%/kps.webAPICommon docker:build
    call mvn -f %parent_dir%/kps.webAPIPO docker:build
    call mvn -f %parent_dir%/kps.webAPISYS docker:build
    call mvn -f %parent_dir%/kps.webAPIWMS docker:build
    call mvn -f %parent_dir%/kps.webAPIEQ docker:build
    call mvn -f %parent_dir%/kps.appAPIScan docker:build
    call mvn -f %parent_dir%/kps.webAPIScreen docker:build
     
    echo "All Completed!"

    五,构建后操作

    选中 :Send build artifacts over SSH

    上传完后,启动docker

    由于启动时,会寻找docker-compose.yml文件,

    所以也需要cd docker 目录

    代码如下:

    cd docker
    docker-compose up -d
    docker-compose ps

    六,Build Now!

    查看console

    PS:

    如果报错;

    [ERROR] Failed to execute goal com.spotify:docker-maven-plugin:1.0.0:build (default-cli) on project springCloud.zuul: 
    Exception caught: java.util.concurrent.ExecutionException: com.spotify.docker.client.shaded.javax.ws.rs.ProcessingException:
    javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException:
    PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException:
    unable to find valid certification path to requested target -> [Help 1]

    说明证书没有拷贝到服务器上。

    svn 忽略文件

    一些时候,我们希望忽略例如 pom.xml文件

    点开  高级,选中 Ignore Property Changes on directories

    在Excluded Regions 中,输入/pom.xml

    意思是,根据  Repository URL + Excluded Regions 找到匹配的路径

    如果还不行,

    1 改成pom.xml 把/去掉

    2 把jenkins/workspace/....中的pom.xml 设置为 只读!)

  • 相关阅读:
    Hashmap
    string字符串分词
    关于链表的几道经典例题
    【C语言】链表(LinkedList)的建立与基本操作
    01迷宫
    2019 数学联赛 题解 / 游记
    一种简单方法构造 n 元有限域
    Python逆向某网站之 AES解密数据
    我发现了一个网站Bug,然后反馈了
    在多线程中使用静态方法是否有线程安全问题
  • 原文地址:https://www.cnblogs.com/hanjun0612/p/12108382.html
Copyright © 2011-2022 走看看