Docker 安装 Jenkins 并解决初始安装插件失败问题_docker

来源:脚本之家  责任编辑:小易  

Docker 介绍Docker号称是下一代的虚拟机,它在启动和创建速度、性能、移植性等方面均优于传统虚拟机。Docker 是 PaaS 提供商 dotCloud开源的一个基于 LXC 的高级容器引擎。它能够让开发者打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux机器上,也可以实现虚拟化。目前,通过 Boot2Docker 已能使 Docker 运行在 Windows 和 OS X 中。Docker容器完全使用沙箱机制,相互之间没有任何接口。Docker 几乎没有性能开销,可以很容易地在机器和数据中心中运行。最重要的是,他们不依赖于任何语言、框架或系统。Docker 在其网站上明确地提到的 Docker 的典型应用场景如下:对应用进行自动打包和部署创建轻量、私有的 PAAS 环境自动化测试和持续整合与部署部署和扩展 Web 应用、数据库和后端服务在自动化测试领域,Docker 大有取代传统虚拟机技术的趋势,原因如下:自动化测试依赖的是测试所需要的应用,而并非整个操作系统。因此,传统的虚拟机技术存在资源浪费。Docker 构建于 LXC 之上。借助 LXC 轻量级的特性,相比于目前的虚拟机技术,Docker 启动更快、资源占用更小。Docker 比虚拟机轻量、灵活,便于管理。Docker 标准化的构建方法(Dockerfile)和良好的 REST API,使得自动测试和持续集成/部署能够很好的集成进来。回页首Sahi 介绍Sahi 是一个开源的 Web UI 自动化测试框架。尽管它的知名度不及 Selenium,用户群也不及 Selenium 庞大,但它确有它独特的魅力,例如:基于上下文的页面元素识别机制。隐式页面加载响应等待机制。良好的浏览器支持。优秀的跨浏览器录制回放调试工具 Sahi Controller。这些特性都大大地加快了自动化测试脚本的开发速度,并降低了维护成本。Sahi通过一个用 Java 编写的代理服务器,将用户的脚本转换为 JavaScript 后注入往返的 HTTP请求及响应中,从而驱动浏览器事件。编程语言方面,除 Sahi 脚本(其本质是一个 JavaScript 库)以外,还支持 Java 和Ruby。Sahi 有开源和收费两个版本。虽然收费版本提供了很多开源版本不具备的高级特性,不过开源版本已经能够满足大部分的功能要求。点此查看开源版本与收费版本的差异。点此查看Sahi 与其他 Web 自动化测试框架的对比。回页首Jenkins 介绍Jenkins是一种开源的基于 Java 开发的持续集成工具,前身称作 Hudson。Jenkins提供了用于监控持续重复工作的软件平台。它支持丰富的插件,用户可以按照需求进行选择安装和配置,以实现生成执行状态表格,自动部署、更新自动化测试包等高级功能。本文将要介绍 Jenkins 的 Docker 插件,它能够动态地创建 Docker 容器作为 Jenkins Slave节点,并在执行任务后,自动关闭容器。另外,它还支持一些额外功能,比如当构建任务成功完成后自动将容器保存为镜像、自动将镜像上传到资源库等。回页首实例演示该实例演示如何制作一个运行 Sahi 的镜像以及如何在 Jenkins 上配置 Docker 插件以运行 Sahi 测试脚本。准备 Docker 镜像本实例需要准备三个镜像:一个运行 Jenkins,一个运行 Subversion,另外一个运行 Sahi。首先,制作运行 Sahi 的镜像。Docker Hub 是一个用于分享 Docker 镜像的资源库。目前,该资源库还没有运行 Sahi 的镜像,所以必须自己创建 Dockerfile 来构建镜像。下图是用来制作 Sahi 镜像的目录。图 1.制作 Sahi 镜像的目录下图是 Dockerfile 的文件内容。图 2.Dockerfile文件内容整个过程大体分为八个步骤:指定基础镜像我们使用的是 evarga/jenkins-slave。该镜像基于 Ubuntu,安装了 SSH 服务,并创建了用户 Jenkins。替换系统默认更新源。把系统更新源替换为 163 的,后面的软件安装速度会比较快一些。安装必要的软件(不包括 Oracle Java 和Sahi):Firefox,Unzip 以及 Xvfb。Open JDK 是为了后面安装 Oracle Java 做准备。Firefox不用多说,因为该镜像用于 Web UI 自动化测试,所以安装了最新版本的 Firefox。安装 Unzip 是因为后面安装 Sahi需要用到它。Xvfb(X virtual framebuffer)是一个 X11显示服务器的实现。它不是将图形在屏幕上显示出来,而是在内存中运行所有的图形操作。对客户端来说,除了无法看到真正的图形显示,没有其他分别。一般称这种运行方式为 headless。安装 Oracle Java 8。理论上 Sahi 应当也支持 Open JDK,所以安装 Oracle Java 不是必须的。安装 Sahi。上传了 zip 文件后,用 Unzip 解压,Sahi 是基于 Java 的,所以解压后即已安装好 Sahi。之后,替换了几个文件,它们的作用如下:Userdata.propertiesuserdata.properties 中有个属性叫proxy_alert.disabled,默认值为 false。用户第一次启动 Sahi Dashboard的时候,会弹出一个如下图所示的对话框。用户勾选了“Do no show this message again”并点击 Continue按钮之后,Sahi 修改该属性值为 true。之后就不会在跳出这个对话框了。由于用 headless 的方式运行 Sahi无法点击该对话框,所以必须事先用一个已将该属性设置为 true 的文件替换 Sahi 默认的 userdata.properties。图 3.Sahi 代理问题对话框sahi_example_com这是一个证书文件。用户第一次在 Sahi Dashboard中打开 Firefox 时的页面如下图所示。用户需要点击 SSL Manager 链接手动接受 SSL 证书。此时,文件sahi_example_com 被生成到 userdata/certs 目录下。之后,就不需要再进行该操作了。所以,复制的sahi_example_com 目的也是为了自动完成这步需要在图形界面下才能完成的操作。图 4.Sahi 启动页图 5.SSLManager 的非信任连接页面browser_types.xml替换该文件是为了使 Sahi 以 headless的方式工作。在该文件中,事先添加了一个名字为 firefox-xvfb 的浏览器配置信息。之后,测试脚本就可以指向该浏览器运行。具体配置 Sahi 和 Xvfb 的步骤参考。init.sh 文件init.sh 文件用于启动 Xvfb 和 Sahi。其内容如下。图 6.init.sh 文件内容“sleep 5”是因为 Sahi 启动需要一点时间,若立即运行测试脚本会导致失败。修改权限最终运行的容器是作为 Jenkins Slave 节点用Jenkins 用户运行,因此将整个/usr/local 目录及子目录的所有人修改为 Jenkins,并给 Shell文件添加执行权限。Jenkins 用户是在基础镜像 evarga/jenkins-slave 中创建的,所以在这个 Dockerfile里没有创建 Jenkins 用户的语句。指定默认执行的命令CMD["/usr/sbin/sshdwww.zgxue.com防采集请勿采集本网。

安装 Jenkins 后,初始化下载插件总是失败,导致安装不成功,重试好几次都是卡在安装插件那。

jenkins自带一个插件向导,根据你的需求可以安装不同的插件,例如想要自动发布artifact你可以装artifact插件并进行配置,如果想要自动部署,可以安装docker或者aws之类的服务插件

这里记录下 Docker 下怎么安装 Jenkins ,并解决初始安装插件失败问题。

lz你好,目前手机root的方法有很多 获取权限之后,怎样使用权限也有专门的软件 推荐lz使用应用宝上的工具:一键root或者kingroot软件啊 lz可以给手机下载一个应用宝的软件,搜索这连个软件其中的

安装插件失败,其实是拉取了官方的 Jenkins 镜像,然后在初始化安装插件时,会从国外的网站去获取,导致安装非常缓慢,或者安装失败。最好的解决方案时拉取 Jenkins 中文社区 提供的 Jenkins 镜像,即可解决。Jenkins 中文官网 :https://www.jenkins.io/zh/

这种方式启动会存储数据,-t 标示以docker run-t-p 8080:8080-p 8083:8083-p 50000:50000-v/var/jenkins_home:/var/jenkins_home jenkins 运行成功之后,我们输入http://ip:8080/ 就可以访问到了

安装步骤获取镜像

可以使用Jenkins的git插件,将远程的master分支pull到本地(或者用clone,具体看要操作的代码量的大校遇到过pull有问题,还要人工干预git操作的例子。

docker pull jenkinszh/jenkins-zh:latest

打包构建build image 然后将 images push 到私有仓库-这个步骤你的问题里没体现出来吧。是用的github源码里自带的build脚本吗?

Docker官方镜像仓库 :https://hub.docker.com/

从这里找到jenkins 中文镜像

设置 jenkins 容器挂载目录

Jenkins 容器启动后,会产生安装配置文件,需要把这些文件的生成地址改为,linux服务器上的目录。

目的:日后修改配置容易寻找。

创建Jenkins 生成目录 mkdir /home/jenkins_home

目录授权 chmod 777/home/jenkins_home 不授权启动后无法生成文件

启动命令

docker run -d -p 8085:8080 -p 50000:50000 --name myjenkins -v /home/jenkins_home/:/var/jenkins_home jenkinszh/jenkins-zh:latest

命令解释:

run 运行容器

-d 后台运行

-p linux服务器端口 与 Docker 容器端口映射

--name 自定义容器别名

-v linux服务器目录 与Docker 容器目录挂载

最后名跟的时 拉取的镜像名和版本

注意:8085 是访问端口,只要没占用的都可以用。8080不可更改

-p 50000:50000 不可更改。

/home/jenkins_home/ 本地的生成目录,可以自定义,与上一步创建并授权的目录一致即可

/var/jenkins_homeDocker 容器目录,不可更改。

访问

服务器ip + 自定义端口 例: 192.168.0.200:8085

初始密码

docker ps 获取当前运行容器的id

docker logs容器的id

在 logs 日志里面即可看到,类似这样

插件安装

用中文社区提供的 Jenkins 镜像 无需设置,直接安装即可,速度飞快。

附-官方镜像安装插件失败分析

以上面 Jenkins 挂载的目录为例

在 jenkins_home 的目录下,hudson.model.UpdateCenter.xml 这个文件定义了 插件拉取的配置地址,默认的地址可以直接访问,你会发现,他连接的是 https://www.google.com/, 由于墙的原因,这个地址一直访问失败。

在/jenkins_home/updates 目录下的default.json 文件内容,就是hudson.model.UpdateCenter.xml 定义的插件拉取的配置地址 里面的内容。即使你通过其他博客 修改了 default.json 的文件内容,当你再次 启动的时候,会立马还原过来,所以怎么修改都还不会生效。

而 Jenkins 中文社区提供的镜像,这块已经处理好了,插件拉取的配置地址 已经换为国内镜像地址,所以插件下载非常快。

Jenkins 中文社区 关于插件拉取的解释:

https://community.jenkins-zh.cn/t/jenkins/26

https://jenkins-zh.cn/wechat/articles/2019/11/2019-11-11-update-center-mirror-announcement/

建议了解一下

到此这篇关于Docker 安装 Jenkins 并解决初始安装插件失败问题的文章就介绍到这了,更多相关Docker 安装 Jenkins 内容请搜索真格学网以前的文章或继续浏览下面的相关文章希望大家以后多多支持真格学网!

1:在linux中安装docker2:使用docker拉取一个linux镜像 如:centos73:使用centos7镜像创建容器并运行。4:在创建的容器中搭建java环境5:上传tomcat并解压6:将jenkins放进tomcat中进行运行(安装方法和在windows中一样),建议使用war包的安装方法,就是将jenkins.war放进tomcat的webapps目录下,在启动tomcat就可以了内容来自www.zgxue.com请勿采集。


  • 本文相关:
  • 使用docker+jenkins自动构建部署
  • docker下利用jenkins和docker实现持续交付
  • .net core自动化部署之利用docker版jenkins部署dotnetcore应用的方法
  • centos7+docker+jenkins+asp.net core 2.0自动化发布与部署的实现
  • asp.net core+docker+jenkins实现持续集成的完整实例
  • 详解docker下搭建jenkins构建环境
  • docker cgroup 资源监控的详解
  • 详解docker镜像提交命令commit的工作原理和使用方法
  • docker 命令教程(附中文解释)
  • 局域网内部署 docker registry(推荐)
  • docker nginx 运行后无法访问的问题解决
  • 基于docker结合canal实现mysql实时增量数据传输功能
  • docker-compose的使用示例详解
  • docker初识之五分钟认识docker
  • 详解使用docker搭建hadoop分布式集群
  • docker安装常用组件(mysql,redis)的方法
  • 如何在docker中安装jenkins
  • 如何使用docker+jenkins实现自动化集成
  • 如何把docker挂载到jenkins
  • 怎么在docker中部署jenkins
  • jenkins需要安装哪些插件
  • jenkins 执行docker run需要root权限怎么设置
  • jenkins怎么给git打包并部署docker容器
  • 怎么在docker中部署jenkins
  • jenkins自动构建docker的问题
  • 怎么把文件传入docker jenkins镜像中
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全dockerhyper-vvmwarevirtualboxxenserverkvmqemuopenvzxencloudstackopenstack云计算技术云其它首页服务器云和虚拟化docker使用docker+jenkins自动构建部署docker下利用jenkins和docker实现持续交付.net core自动化部署之利用docker版jenkins部署dotnetcore应用的方法centos7+docker+jenkins+asp.net core 2.0自动化发布与部署的实现asp.net core+docker+jenkins实现持续集成的完整实例详解docker下搭建jenkins构建环境docker cgroup 资源监控的详解详解docker镜像提交命令commit的工作原理和使用方法docker 命令教程(附中文解释)局域网内部署 docker registry(推荐)docker nginx 运行后无法访问的问题解决基于docker结合canal实现mysql实时增量数据传输功能docker-compose的使用示例详解docker初识之五分钟认识docker详解使用docker搭建hadoop分布式集群docker安装常用组件(mysql,redis)的方法docker 给运行中的容器设置端口映docker 清理命令集锦docker获取镜像报错docker: erroubuntu14.04+docker的安装及使用docker.service启动失败:unit ndocker容器如何优雅的终止详解浅谈docker-compose网络设置之necentos7 安装docker 解决启动不了详解docker国内镜像拉取和镜像加docker如何固定ip设置的方法详解如何干净的卸载docker的方法详解docker无法正常启动的原因及解决办法docker容器修改配置文件的实现macbookpro下docker的安装与使用教程树莓派4b ubuntu19 server 安装docker-cedocker使用link在容器之间建立连接docker搭建php+nginx+swoole+mysql+redisubuntu 搭建基于docker的lnmp+redis的开发docker overlay 网络搭建的方法docker 实现浏览器里开发android应用的功
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved