您好,登录后才能下订单哦!
这篇文章主要介绍如何使用Jenkins镜像,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
$ 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镜像启动后,打开浏览器http://your-ip:8080, 会提示输入用户名密码,这里默认用户名admin,密码admin。进入后在用户菜单里修改密码。
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_test docker tag -f demo:$TAG your_registry/demo:$TAG docker push your_registry/demo:$TAG
如果你挂载了主机目录到容器内,那么备份该目录即可。这也是我们推荐的方法。将/var/jenkins_home目录看作数据库目录。
如果你的卷在容器里面,那么可以通过docker cp $ID:/var/jenkins_home命令拷贝出数据。
如果对docker数据管理有兴趣,可以阅读 Managing data in containers
你可以通过groovy脚本来指定jenkins master执行器的数量。默认是2个,但你可以扩展镜像:
# executors.groovy Jenkins.instance.setNumExecutors(5)
和Dockerfile
FROM index.csphere.cn/microimages/jenkins COPY executors.groovy /usr/share/jenkins/ref/init.groovy.d/executors.groovy
你可以在master上构建,但如果想在slave上构建的话,必须做好50000端口映射,这是用来连接slave agent的。
你也许想修改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 <<EOF handlers=java.util.logging.ConsoleHandler jenkins.level=FINEST java.util.logging.ConsoleHandler.level=FINEST EOF $ docker run --name myjenkins -p 8080:8080 -p 50000:50000 --env JAVA_OPTS="-Djava.util.logging.config.file=/var/jenkins_home/log.properties">
你也可以传递jenkins的运行参数:
docker run jenkins --version
你还可以在环境变量JENKINS_OPTS中定义jenkins的运行参数,比如:
FROM index.csphere.cn/microimages/jenkins COPY https.pem /var/lib/jenkins/cert COPY https.key /var/lib/jenkins/pk ENV JENKINS_OPTS --httpPort=-1 --httpsPort=8083 --httpsCertificate=/var/lib/jenkins/cert --httpsPrivateKey=/var/lib/jenkins/pk EXPOSE 8083
你还可以通过定义环境变量JENKINS_SLAVE_AGENT_PORT来改变默认的slave端口
FROM index.csphere.cn/microimages/jenkins ENV 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脚本或插件。比如我们希望加入更多的插件:
具体的插件可以通过Jenkins插件 搜索。
plugins.txt文件的内容如下:
pluginID:version anotherPluginID:version
Dockerfile编写如下:
FROM index.csphere.cn/microimages/jenkins COPY plugins.txt /usr/share/jenkins/plugins.txt RUN /usr/local/bin/plugins.sh /usr/share/jenkins/plugins.txt
以上是“如何使用Jenkins镜像”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。