您好,登錄后才能下訂單哦!
這篇文章主要介紹如何使用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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。