# microimage-jenkins **Repository Path**: csphere/microimage-jenkins ## Basic Information - **Project Name**: microimage-jenkins - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2015-10-26 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ![jenkins](https://csphere.cn/assets/33acb95a-24e8-4559-9889-fa31b8cb95bd) ## 如何使用镜像 ```console $ docker run -p 8080:8080 index.csphere.cn/microimages/jenkins ``` 这样启动将会把所有workspace存储到 `/var/jenkins_home` 目录,包括所有数据、插件以及配置,你也许希望运行在一个持久化的数 据卷里: ```console $ docker run --name myjenkins -p 8080:8080 -v /var/jenkins_home index.csphere.cn/microimages/jenkins ``` myjenkins这个容器里的卷将会得到持久化,你也可以映射一个主机目录: ```console $ docker run -p 8080:8080 -p 50000:50000 -v /var/jenkins_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_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](https://docs.docker.com/userguide/dockervolumes/) ## 设置执行器的数量 你可以通过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 ``` ## 构建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.file` Java property来配置 ```console $ mkdir data $ cat > data/log.properties <