zoukankan      html  css  js  c++  java
  • Docker安装部署Jenkins和问题总结(最好不要用Docker安装,坑多)

    安装jenkins转载于 https://www.cnblogs.com/jack-jin/articles/12291190.html

    1.本篇解释:Jenkins插件安装失败处理方法

    不论是刚启动成功后进行的推荐插件安装,还是后期使用Jenkins过程中进行插件的安装。出现插件安装失败的问题,可以通过本篇解决!

    【注意,插件下载安装失败,其失败的原因是多种多样的。这里仅说明了这些失败出现的情况是在启动安装时还是在后期使用中。】

    【在下面的解决方法模块,会根据具体失败的问题进行处理】

    =====================================安装失败出现的环境================================================

    如下:

    初始启动安装推荐插件失败的情况

    使用Jenkins过程中,插件安装失败:

    =====================================================针对不同安装失败的原因,具体对应的解决方法===========================================================================

    针对不同的插件下载失败问题,按照对应的解决方法进行解决:

    1.网络或墙的问题导致插件下载安装失败

     这种错误提示很明显,就是无法连接到插件下载地址,导致插件下载失败。

    解决方法:

    为Jenkins更换源

    点击Jenkins主页面左侧列表中【系统管理】

     下拉找到【管理插件】

     选择【高级】选项卡

    替换最下方【升级站点】中的URL

    http://updates.jenkins-ci.org/update-center.json

    替换为

    http://mirror.esuni.jp/jenkins/updates/update-center.json

    如下图:【详细的Jenkins的镜像地址查询:http://mirrors.jenkins-ci.org/status.html

    保存后,即可返回到【可选插件】选项卡下,进行搜索重新安装。

    2.因为Jenkins版本太低导致插件不支持

     可以在线升级Jenkins的版本,即下载war包进行升级。【本人使用的Jenkins的docker镜像启动使用的,因此本方法不适合我】

    解决方法:

      1.上面所说,因为Jenkins本身版本过低的问题,导致插件安装不成功。可以自行升级Jenkins版本,来解决这个问题。

      2.但是像这种使用docker镜像启动的,升级Jenkins的版本是没多大戏了,除非你把这个容器和对应镜像干掉。下载更新的镜像来启动Jenkins容器。

        所以可以通过下载插件历史版本,然后在Jenkins进行上传插件的方式来解决这个问题。也就是所谓的手动下载上传插件安装

    自行升级Jenkins版本:

      1.一定要在Jenkins官网查找最新版本,官网地址:https://jenkins.io/download/

      2.选择对应操作方式的最新版本,例如:docker安装包   或者  windows安装包 或者 其他

      3.docker安装步骤,参考:https://www.cnblogs.com/sxdcgaq8080/p/10489369.html

    手动下载上传插件安装:

      这里就以安装Docker Pipline插件为例,演示手动下载上传插件安装:

      1》首先咱们可以在启动的Jenkins上的 系统管理进入

      2》可以看到错误日志中 Docker Pipline V1.17版本 所依赖的Pipline GroovyV2.57.2的版本 需要Jenkins版本在2.62以上才可以使用

      3》同样在Jenkins的系统管理下的 插件管理下 可以看到

      4》进入Jenkins的插件下载网站

    下载Jenkins的插件的地址:https://plugins.jenkins.io/

    搜索本插件

    点击进入后,可以获取历史插件版本

     

     

      5》进入Jenkins,进入系统管理,进入管理插件,进入高级,上传插件文件,开始上传

    2.即可安装完成并且成功。需要注意的是,如果本插件有其他依赖插件的话,需要先安装依赖插件,再进行本插件的安装,否则还会失败!!!!!

    根据容器名称查询容器ID并删除
    # 第一种写法
    docker stop `docker ps -a| grep test-project | awk '{print $1}' `
    docker rm `docker ps -a| grep test-project | awk '{print $1}' `

    # 第二种写法
    docker stop `docker ps -aq --filter name=test-project`
    docker rm `docker ps -aq --filter name=test-project`

    根据镜像名称查询容器ID并删除
    # 第一种写法
    docker stop `docker ps -a| grep ygsama/test-project:1.0.2 | awk '{print $1}' `
    docker rm `docker ps -a| grep ygsama/test-project:1.0.2 | awk '{print $1}' `

    # 第二种写法
    docker stop `docker ps -aq --filter ancestor=ygsama/test-project:1.0.2`
    docker rm `docker ps -aq --filter ancestor=ygsama/test-project:1.0.2`


    根据镜像名称查询镜像ID并删除

    docker images -q --filter reference=ygsama/test-project*:*
    docker image rm `docker images -q --filter reference=10.2.21.95:10001/treasury-brain*:*`

    还可以根据端口号、状态等字段筛选容器,详细可以参考官方文档

    3.

    1.在使用docker容器时,有时候里边没有安装vim,敲vim命令时提示说:vim: command not found,这个时候就需要安装vim,可是当你敲apt-get install vim命令时,提示:

            Reading package lists... Done
            Building dependency tree       
            Reading state information... Done
            E: Unable to locate package vim

            这时候需要敲:apt-get update,这个命令的作用是:同步 /etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的索引,这样才能获取到最新的软件包。

            等更新完毕以后再敲命令:apt-get install vim命令即可。

    今天在docker容器内部执行apt-get install vim 命令一直没有权限,在启动docker容器的时候 加上--privileged就行 docker run -d -u root --privileged

    4.因为我是用docker安装部署的jenkins中间踩了许多坑,还是推荐大家用jenkins.jar安装

    jenkins配置的git,maven,和jdk都是在docker容器内部

    docker run -d -u root --privileged --name jenkins -p 8088:8080 -v /opt/docker_jenkens:/var/jenkins_home -v /opt/apache-maven-3.5.4:/usr/local/maven -v /opt/jdk:/usr/local/jdk  -v /home/admin:/home/admin  jenkins/jenkins:lts;

    5.

    1、从容器里面拷文件到宿主机?

         答:在宿主机里面执行以下命令

                 docker cp 容器名:要拷贝的文件在容器里面的路径       要拷贝到宿主机的相应路径 

         示例: 假设容器名为testtomcat,要从容器里面拷贝的文件路为:/usr/local/tomcat/webapps/test/js/test.js,  现在要将test.js从容器里面拷到宿主机的/opt路径下面,那么命令应该怎么写呢?

         答案:在宿主机上面执行命令

    docker cp testtomcat:/usr/local/tomcat/webapps/test/js/test.js /opt

    2、从宿主机拷文件到容器里面

          答:在宿主机里面执行如下命令

                  docker cp 要拷贝的文件路径 容器名:要拷贝到容器里面对应的路径

           示例:假设容器名为testtomcat,现在要将宿主机/opt/test.js文件拷贝到容器里面的/usr/local/tomcat/webapps/test/js路径下面,那么命令该怎么写呢?

           答案:在宿主机上面执行如下命令     

    docker cp /opt/test.js testtomcat:/usr/local/tomcat/webapps/test/js

    3、在这里在记录一个问题,怎么看容器名称?

          执行命令:docker ps,出现如图所示,其中NAMES就是容器名了。

     4.需要注意的是,不管容器有没有启动,拷贝命令都会生效。

    原文链接:https://blog.csdn.net/zimou5581/java/article/details/94012682

    6.jenkins时间问题

    jenkins系统时间不正确解决方案

    meiria 2019-06-03 17:30:59 3980 收藏 3
    分类专栏: jenkins
    版权
    问题:安装完jenkins后发现时区不对

    解决:打开jenkins的【系统管理】---> 【脚本命令行】,在命令框中输入一下命令【时间时区设为 亚洲上海】:

    System.setProperty('org.apache.commons.jelly.tags.fmt.timeZone', 'Asia/Shanghai')
    点击【运行】,可以看到时间已正常,如图。

     

    后续:有时候打开又发现时间变了,又是相隔8个小时的utc,每次都要在命令行输入也是很麻烦了,打算这次一次性解决。

    由于我这边jenkins跑的是docker,起容器时命令是把/etc/localtime映射进去的,因此容器时间和主机时间是一致的,但是jenkins的时间还是utc,这就说明 jenkins时间用的不是/etc/localtime。

    用命令查看docker的时区,cat /etc/timezone

    # 查看系统的时区
    [root@note-53 ~]# cat /etc/timezone
    Asia/Shanghai

    # 进入容器
    [root@note-53 ~]# docker exec -it -u root jenkins bash

    # 查看容器时区
    root@note-53:/# cat /etc/timezone
    Etc/UTC

    #修改容器时区
    root@note-53:/# echo 'Asia/Shanghai' > /etc/timezone
    root@note-53:/# exit

    # 重启容器
    [root@note-53 ~]# docker restart jenkins

    重新打开jenkins页面,发现时间已经正常。

    还是建议起容器的时候,把本机的/etc/timezone映射进去。【或者采用 -e JAVA_OPTS=-Duser.timezone=Asia/Shanghai】

    docker run --name jenkins --restart=always --network=host -e JAVA_OPTS=-Duser.timezone=Asia/Shanghai  -v /var/jenkins_home:/var/jenkins_home  -v /data/jdk:/data/jdk -v /etc/localtime:/etc/localtime -d jenkins
    或者jenkins直接修改用户时区
    原文链接:https://blog.csdn.net/qq_40168110/java/article/details/90755684



    安装jenkins踩过的坑 转载于 https://www.cnblogs.com/sxdcgaq8080/p/10489326.html

  • 相关阅读:
    mysql_fetch_row()获取显示数据
    数组上下移动
    croppie 在Angular8 中使用
    关于 element 的 backToTop
    苹果手机new Date()问题
    js精简代码集合
    vue 中使用高德地图, 地图选点
    代替if else 的表单验证方法!
    记一次webpack打包样式加载问题
    echarts 饼图的指示线(labelline) 问题
  • 原文地址:https://www.cnblogs.com/Hello-TomCat/p/13297307.html
Copyright © 2011-2022 走看看