如何在Docker里正確集成Jenkins和Phabricator

單獨安裝Jenkins並不複雜,用Docker安裝Jenkins更加簡單,甚至將JenkinsPhabricator集成也不難,但要把一個運行在Docker裏的JenkinsPhabricator相集成,事情就變得不那麼容易。php

我把全部走過的坑所有隱藏,直接告訴你最正確的步驟。git

經過Docker安裝Jenkins

這一步彷佛很簡單,但不要按照官方教程上所說的來,而按照如下命令執行:github

docker run --name jenkins -p 8088:8080 -p 50000:50000 -v /var/jenkins_home:/var/jenkins_home -e PATH='/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/src/arcanist/bin' jenkins/jenkins

-p 8088:8080是爲了不8080端口衝突(畢竟只要是個Java程序就想佔用8080端口),-e設置裏特地增長了/src/arcanist/bin是爲下一步集成Phabricator裏的Arcanist作準備,由於若是不在這裏設置好這個環境變量的話,後面會帶來很大麻煩。docker

進Docker安裝Arc

由於官方提供的Docker里根本就沒有Arcanist,因此咱們必須進入Docker的容器,手工安裝arcvim

docker exec -it -u root jenkins bash

好在這個Docker並不複雜,只是一個Debian,因此咱們以root用戶進入,而後:bash

apt-get update
apt-get install php
apt-get install php-curl
apt-get install rsync
apt-get install vim
mkdir /src
cd /src
git clone git://github.com/facebook/libphutil.git
git clone git://github.com/facebook/arcanist.git

把你的ssh公鑰私鑰文件拷到/var/jenkins_home/.ssh裏,由於後面不管是git仍是rsync你都須要它們。而後再以jenkins用戶身份進入Dockerssh

docker exec -it -u jenkins jenkins bash

而後:curl

arc set-config default http://your.phabricator.com/
cd /var/jenkins_home/.ssh
chmod 600 id_rsa
chmod 600 id_rsa.pub

若是須要rsync任何主機,則必須首先ssh到該主機一次,把該主機的地址加入到known_hosts文件中,rsync方能成功。url

至此,你已經把官方提供的Docker改得面目全非,纔算正確地在Docker裏安裝好了arcJenkinscode

配置Phabricator和Jenkins

接下來的步驟,你就能夠參照官方教程一步一步執行,我就再也不重複了。

若是你也遇到了相似的頭疼問題,但願這篇文章可以對你有所啓發。

相關文章
相關標籤/搜索