Drone 是一個構(gòu)建在Docker之上的開源持續(xù)集成平臺(CI)。Drone 提供了一組預(yù)建的Docker映像,支持12+種語言和幾乎所有主要的數(shù)據(jù)庫。這意味著你不必花時間來安裝軟件和配置您的構(gòu)建環(huán)境。當(dāng)然,如果你需要一個高度定制的環(huán)境Drone提供了足夠的靈活性來使用自定義Docker映像。
Drone 完全采用Go語言開發(fā)。具有快速,高效的特點。
與其他的CI服務(wù)相比有什么不同?
1.Drone是開源的
2.Drone是構(gòu)建在Docker之上
3.Drone 輕松托管在自己的基礎(chǔ)架構(gòu)之上
4.Drone 提供一個 CLI 來運行本地構(gòu)建,在Docker容器中
5.Drone 默認與 GitHub 集成,很快將支持Bitbucket patch
1. 安裝 Docker
首先,我們要安裝 docker,因為這是 Drone 的工作流的最關(guān)鍵的元素。Drone 合理的利用了 docker 來構(gòu)建和測試應(yīng)用。容器技術(shù)提高了應(yīng)用部署的效率。要安裝 docker ,我們需要在不同的 linux 發(fā)行版本運行下面對應(yīng)的命令,我們這里會說明 Ubuntu 14.04 和 CentOS 7 兩個版本。
Ubuntu
要在 Ubuntu 上安裝 Docker ,我們只需要運行下面的命令。
代碼如下:
# apt-get update
# apt-get install docker.io
安裝之后我們需要使用service 命令重啟 docker 引擎。
復(fù)制代碼
代碼如下:
# service docker restart
然后我們讓 docker 在系統(tǒng)啟動時自動啟動。
代碼如下:
# update-rc.d docker defaults
Adding system startup for /etc/init.d/docker ...
/etc/rc0.d/K20docker -> ../init.d/docker
/etc/rc1.d/K20docker -> ../init.d/docker
/etc/rc6.d/K20docker -> ../init.d/docker
/etc/rc2.d/S20docker -> ../init.d/docker
/etc/rc3.d/S20docker -> ../init.d/docker
/etc/rc4.d/S20docker -> ../init.d/docker
/etc/rc5.d/S20docker -> ../init.d/docker
CentOS
第一,我們要更新機器上已經(jīng)安裝的軟件包。我們可以使用下面的命令。
代碼如下:
# sudo yum update
要在 centos 上安裝 docker,我們可以簡單的運行下面的命令。
代碼如下:
# curl -sSL https://get.docker.com/ | sh
安裝好 docker 引擎之后我么只需要簡單使用下面的systemd 命令啟動 docker,因為 centos 7 的默認初始化系統(tǒng)是 systemd。
代碼如下:
# systemctl start docker
然后我們要讓 docker 在系統(tǒng)啟動時自動啟動。
代碼如下:
# systemctl enable docker
代碼如下:
ln -s '/usr/lib/systemd/system/docker.service' '/etc/systemd/system/multi-user.target.wants/docker.service'
2. 安裝 SQlite 驅(qū)動
Drone 默認使用 SQlite3 數(shù)據(jù)庫服務(wù)器來保存數(shù)據(jù)和信息。它會在 /var/lib/drone/ 自動創(chuàng)建名為 drone.sqlite 的數(shù)據(jù)庫來處理數(shù)據(jù)庫模式的創(chuàng)建和遷移。要安裝 SQlite3 我們要完成以下幾步。
Ubuntu 14.04
因為 SQlite3 存在于 Ubuntu 14.04 的默認軟件庫,我們只需要簡單的使用 apt 命令安裝它。
代碼如下:
# apt-get install libsqlite3-dev
CentOS 7
要在 Centos 7 上安裝需要使用下面的 yum 命令。
代碼如下:
# yum install sqlite-devel
3. 安裝 Drone
最后,我們安裝好依賴的軟件,我們現(xiàn)在更進一步的接近安裝 Drone。在這一步里我們只簡單的從官方鏈接下載對應(yīng)的二進制軟件包,然后使用默認軟件包管理器安裝 Drone。
Ubuntu
我們將使用 wget 從官方的 Debian 文件下載鏈接下載 drone 的 debian 軟件包。下面就是下載命令。
代碼如下:
# wget downloads.drone.io/master/drone.deb
Resolving downloads.drone.io (downloads.drone.io)... 54.231.48.98
Connecting to downloads.drone.io (downloads.drone.io)|54.231.48.98|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 7722384 (7.4M) [application/x-debian-package]
Saving to: 'drone.deb'
100%[======================================>] 7,722,384 1.38MB/s in 17s
2015-11-06 14:09:28 (456 KB/s) - 'drone.deb' saved [7722384/7722384]
下載好之后,我們將使用 dpkg 軟件包管理器安裝它。
代碼如下:
# dpkg -i drone.deb
Selecting previously unselected package drone.
(Reading database ... 28077 files and directories currently installed.)
Preparing to unpack drone.deb ...
Unpacking drone (0.3.0-alpha-1442513246) ...
Setting up drone (0.3.0-alpha-1442513246) ...
Your system ubuntu 14: using upstart to control Drone
drone start/running, process 9512
CentOS
在 CentOS 機器上我們要使用 wget 命令從下載鏈接下載 RPM 包。
代碼如下:
# wget downloads.drone.io/master/drone.rpm
--2015-11-06 11:06:45--
Resolving downloads.drone.io (downloads.drone.io)... 54.231.114.18
Connecting to downloads.drone.io (downloads.drone.io)|54.231.114.18|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 7763311 (7.4M) [application/x-redhat-package-manager]
Saving to: ‘drone.rpm’
100%[======================================>] 7,763,311 1.18MB/s in 20s
2015-11-06 11:07:06 (374 KB/s) - ‘drone.rpm’ saved [7763311/7763311]
然后我們使用 yum 安裝 rpm 包。
代碼如下:
# yum localinstall drone.rpm
4. 配置端口