ReviewBoard是個開源的、可擴展的、友好的基於Web的代碼評審工具,是用Python框架Django開發的。 html
還記得以前安裝ReviewBoard時折騰了很久
ReviewBoard官方文檔很完善,官網上有詳細的
安裝指南(每一個環境:linux、windows、MacOSX)
當時的安裝環境是linux,所須要的大多軟件理論上能夠經過yum/apt-get或者easy-install安裝
可是最初安裝的時候,是在公司內網,沒法鏈接到外網,同時yum源不完善、也沒法使用easy-install來安裝與python相關的包
這樣,許多軟件都須要手動安裝,安裝過程繁瑣、複雜,安裝時的依賴解決、錯誤定位和解決花費了大量的時間
尤爲是安裝ReviewBoard須要解決的依賴甚多,安裝pysvn時須要一一解決的錯誤甚多
這樣,首次安裝就花費了大約一週的時間
而這樣的安裝,沒法遷移,要在其餘環境安裝還得從新安裝
後來雖屢次演練,不斷積累了安裝經驗,但整個ReviewBoard環境一步步安裝下來至少也須要一天
這兩年Docker風生水起,而它使得ReviewBoard安裝、遷移等變得更簡單。
查看GitHub或DockerHub的相關頁面,有詳細的使用說明。
docker-reviewboard:
Dockerized化的ReviewBoard。
這個容器遵循Docker最佳實踐,而且除了reviewboard運行在uwsgi的服務,不包括sshd、supervisor、apache2或其餘服務。
它須要PostgreSQL和memcached,你可使用Docker化的版本,也可使用外部版本(例如安裝在主機上或第三方機器上)。
使用全部docker化的依賴快速啓動、運行docker化的reviewboard,在docker容器中持久化數據。
# Install postgres
docker run -d --name rb-postgres -e POSTGRES_USER=reviewboard postgres
# Install memcached
docker run --name rb-memcached -d -p 11211 sylvainlasnier/memcached
# Create a data container for reviewboard with ssh credentials and media.
docker run -v /.ssh -v /media --name rb-data busybox true
# Run reviewboard
docker run -it --link rb-postgres:pg --link rb-memcached:memcached --volumes-from rb-data -p 8000:8000 ikatson/reviewboard
在docker命令執行完成後,經過http://ip:8000/即可訪問reviewboard,管理員賬號是admin:admin,登陸以後能夠修改管理員密碼,設置SMTP等。 python
使用docker ps查看運行的容器:
經過csphere的管理界面,也能夠查看相應的容器信息: linux
此外,也能夠經過源碼本身構建鏡像(包括依賴),也能夠選擇將PostgreSQL、memcached安裝在主機上。
reviewboard容器的掛載點和環境變量:
這個容器有兩個Volum掛載點:
- /.ssh:reviewboard存儲ssh key的默認路徑
- /media:reviewboard存儲上傳的媒介的默認路徑
這個容器接收以下環境變量:
- PGHOST:postgre的主機,默認是PG_PORT_5432_TCP_ADDR的值,由鏈接的容器pg提供。
- PGPORT:postgre的端口,默認是PG_PORT_5432_TCP_PORT的值,由鏈接的容器pg提供,或者是5432,或者是空。
- PGUSER:postgre的用戶,默認是reviewboard。
- PGDB:postgre數據庫,默認是reviewboard。
- PGPASSWORD:postgre密碼,默認是reviewboard。
- MEMCACHED:mencached地址,以host:port的形式,默認的值來着鏈接的mencached容器。
- DOMAIN:默認是localhost。
- DEBUG:若是設置,django服務將以debug模式運行。
此外,Docker鏡像或容器能夠持久化(docker export用於持久化容器,docker save用於持久化鏡像)到文件系統中;
同時可使用docker import導入持久化的容器,可使用docker load載入持久化的鏡像;
這使得鏡像或容器的遷移很是方便。
這樣docker化的reviewboard遷移變得更簡單。
總之,docker化的reviewboard讓reviewboard安裝、遷移更簡單。
參考: