博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
开箱即用的Jenkins镜像
阅读量:7185 次
发布时间:2019-06-29

本文共 3564 字,大约阅读时间需要 11 分钟。

hot3.png

如何使用镜像

$ docker run -p 8080:8080 index.csphere.cn/microimages/jenkins

这样启动将会把所有workspace存储到/var/jenkins_home目录,包括所有数据、插件以及配置,你也许希望运行在一个持久化的数据卷里:

$ docker run --name myjenkins -p 8080:8080 -v /var/jenkins_home index.csphere.cn/microimages/jenkins

myjenkins这个容器里的卷将会得到持久化,你也可以映射一个主机目录:

$ sudo chown 999 /your/home$ docker run -p 8080:8080 -p 50000:50000 -v /your/home:/var/jenkins_home index.csphere.cn/microimages/jenkins

jenkins管理员用户

jenkins镜像启动后,打开浏览器http://your-ip:8080, 会提示输入用户名密码,这里默认用户名admin,密码admin。进入后在用户菜单里修改密码。

如何和docker结合

docker最大的优势在于部署,jenkins最强大的在于作业调度和插件系统,如何结合两者?

jenkins镜像里内置了docker client命令行工具,/usr/bin/docker,因此我们只需要传递DOCKER_HOST环境变量 或者映射docker.sock文件给jenkins容器,就可以让jenkins容器里面拥有docker的操作能力,进而将两者结合起来。

比如:

docker run -p 8080:8080 -p 50000:50000 -v /your/home:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock index.csphere.cn/microimages/jenkins

然后我们就可以在自己的jenkins项目中,添加一个执行shell脚本,示例如下:

TAG=$(echo $GIT_COMMIT | awk  '{ string=substr($0, 1, 7); print string; }' )docker build -t demo:$TAG .docker run --rm demo:$TAG run_testdocker tag -f demo:$TAG your_registry/demo:$TAGdocker push your_registry/demo:$TAG

备份数据

如果你挂载了主机目录到容器内,那么备份该目录即可。这也是我们推荐的方法。将/var/jenkins_home目录看作数据库目录。

如果你的卷在容器里面,那么可以通过docker cp $ID:/var/jenkins_home命令拷贝出数据。

如果对docker数据管理有兴趣,可以阅读

设置执行器的数量

你可以通过groovy脚本来指定jenkins master执行器的数量。默认是2个,但你可以扩展镜像:

# executors.groovyJenkins.instance.setNumExecutors(5)

和Dockerfile

FROM index.csphere.cn/microimages/jenkinsCOPY executors.groovy /usr/share/jenkins/ref/init.groovy.d/executors.groovy

构建executors

你可以在master上构建,但如果想在slave上构建的话,必须做好50000端口映射,这是用来连接slave agent的。

传递JVM参数

你也许想修改JVM的运行参数,比如heap memory:

$ docker run --name myjenkins -p 8080:8080 -p 50000:50000 --env JAVA_OPTS=-Dhudson.footerURL=http://mycompany.com index.csphere.cn/microimages/jenkins

配置日志

Jenkins的日志可以通过java.util.logging.config.fileJava property来配置

$ mkdir data$ cat > data/log.properties <

传递Jenkins的启动参数

你也可以传递jenkins的运行参数:

docker run jenkins --version

你还可以在环境变量JENKINS_OPTS中定义jenkins的运行参数,比如:

FROM index.csphere.cn/microimages/jenkinsCOPY https.pem /var/lib/jenkins/certCOPY https.key /var/lib/jenkins/pkENV JENKINS_OPTS --httpPort=-1 --httpsPort=8083 --httpsCertificate=/var/lib/jenkins/cert --httpsPrivateKey=/var/lib/jenkins/pkEXPOSE 8083

你还可以通过定义环境变量JENKINS_SLAVE_AGENT_PORT来改变默认的slave端口

FROM index.csphere.cn/microimages/jenkinsENV JENKINS_SLAVE_AGENT_PORT 50001

或者直接通过-e环境变量提供:

docker run --name myjenkins -p 8080:8080 -p 50001:50001 -e JENKINS_SLAVE_AGENT_PORT=50001 index.csphere.cn/microimages/jenkins

安装更多工具

我们可以继承此镜像,来定义我们自己的jenkins的hook脚本或插件。比如我们希望加入更多的插件:

具体的插件可以通过 搜索。

plugins.txt文件的内容如下:

pluginID:versionanotherPluginID:version

Dockerfile编写如下:

FROM index.csphere.cn/microimages/jenkinsCOPY plugins.txt /usr/share/jenkins/plugins.txtRUN /usr/local/bin/plugins.sh /usr/share/jenkins/plugins.txt

升级

所有数据都保存在/var/jenkins_home目录,只要在运行jenkins时指定了host volume的目录(-v hostdir:/var/jenkins_home),当你升级时,只要该目录不丢失,升级不会造成之前的配置、数据丢失。

授权和法律

该镜像由希云制造,未经允许,任何第三方企业和个人,不得重新分发。违者必究。

支持和反馈

该镜像由希云为企业客户提供技术支持和保障,任何问题都可以直接反馈到:docker@csphere.cn

Dockerfile代码地址:

Docker技术如何落地企业带来价值

希云是Docker领域的专家,致力于通过Docker技术提供更好的云计算产品和服务。希云品牌下的产品包括了

  • COS容器操作系统
  • cSphere容器管理平台
  • CDT基于容器的开发测试平台
  • CShow基于容器的项目演示平台-
  • CHub企业版Registry

并提供相关的培训和咨询服务

  • 微镜像服务
  • Docker企业培训
  • 应用Docker化咨询
  • 软件SaaS化咨询
  • PaaS化咨询

欢迎企业垂询:

  • 电话:400-686-1560
  • 邮箱:contactus@csphere.cn

微信关注cSphere-CN

回复数字“1”即可查看【Docker持续部署图文详解】

回复数字“2”即可查看【初识Docker和Windows Server容器】
回复数字“3”即可查看【为Windows创建Node.js容器镜像】
回复数字“4”即可查看【使用Docker-in-Docker来运行CI或集成测试环境?三思】

转载声明

尊重知识,请必须全文转载,不得删改,包括本行。

转载于:https://my.oschina.net/kernalsky/blog/521252

你可能感兴趣的文章
Mevan 初涉
查看>>
猴子分桃
查看>>
Django框架之templates(模板)系统
查看>>
提高mysql千万级大数据SQL查询优化30条经验(Mysql索引优化注意)
查看>>
前端性能优化(css动画篇)
查看>>
用户体验评价
查看>>
[SCOI2012]滑雪与时间胶囊
查看>>
phonegap ios开发环境搭建
查看>>
QTP安装错误整理
查看>>
VBA中级班课时3小结
查看>>
捕获和记录SQL Server中发生的死锁
查看>>
WEB开发 前台界面后台java一致性
查看>>
Javascript 组合继承 原型链继承 寄生继承
查看>>
Java 引用传递
查看>>
LoadRunner ---检查点
查看>>
浏览器启动android应用
查看>>
Ubuntu Live CD定制——内核的更换
查看>>
SpringInAction--SpringMvc高级技术(servlet、filter、multipart)
查看>>
BAT-使用BAT方法删除目录下0KB文件
查看>>
[C++]怎么将.h和.cpp文件分别放在不同的目录
查看>>