Drone 是一個(gè)構(gòu)建在Docker之上的開源持續(xù)集成平臺(CI)。Drone 提供了一組預(yù)建的Docker映像,支持12+種語言和幾乎所有主要的數(shù)據(jù)庫。這意味著你不必花時(shí)間來安裝軟件和配置您的構(gòu)建環(huán)境。當(dāng)然,如果你需要一個(gè)高度定制的環(huán)境Drone提供了足夠的靈活性來使用自定義Docker映像。
Drone 完全采用Go語言開發(fā)。具有快速,高效的特點(diǎn)。
與其他的CI服務(wù)相比有什么不同?
1.Drone是開源的
2.Drone是構(gòu)建在Docker之上
3.Drone 輕松托管在自己的基礎(chǔ)架構(gòu)之上
4.Drone 提供一個(gè) CLI 來運(yùn)行本地構(gòu)建,在Docker容器中
5.Drone 默認(rèn)與 GitHub 集成,很快將支持Bitbucket patch
1. 安裝 Docker
首先,我們要安裝 docker,因?yàn)檫@是 Drone 的工作流的最關(guān)鍵的元素。Drone 合理的利用了 docker 來構(gòu)建和測試應(yīng)用。容器技術(shù)提高了應(yīng)用部署的效率。要安裝 docker ,我們需要在不同的 linux 發(fā)行版本運(yùn)行下面對應(yīng)的命令,我們這里會說明 Ubuntu 14.04 和 CentOS 7 兩個(gè)版本。
Ubuntu
要在 Ubuntu 上安裝 Docker ,我們只需要運(yùn)行下面的命令。
代碼如下:
# apt-get update
# apt-get install docker.io
安裝之后我們需要使用service 命令重啟 docker 引擎。
復(fù)制代碼
代碼如下:
# service docker restart
然后我們讓 docker 在系統(tǒng)啟動(dòng)時(shí)自動(dòng)啟動(dò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ī)器上已經(jīng)安裝的軟件包。我們可以使用下面的命令。
代碼如下:
# sudo yum update
要在 centos 上安裝 docker,我們可以簡單的運(yùn)行下面的命令。
代碼如下:
# curl -sSL https://get.docker.com/ | sh
安裝好 docker 引擎之后我么只需要簡單使用下面的systemd 命令啟動(dòng) docker,因?yàn)?centos 7 的默認(rèn)初始化系統(tǒng)是 systemd。
代碼如下:
# systemctl start docker
然后我們要讓 docker 在系統(tǒng)啟動(dòng)時(shí)自動(dòng)啟動(dòng)。
代碼如下:
# systemctl enable docker
代碼如下:
ln -s '/usr/lib/systemd/system/docker.service' '/etc/systemd/system/multi-user.target.wants/docker.service'
2. 安裝 SQlite 驅(qū)動(dòng)
Drone 默認(rèn)使用 SQlite3 數(shù)據(jù)庫服務(wù)器來保存數(shù)據(jù)和信息。它會在 /var/lib/drone/ 自動(dòng)創(chuàng)建名為 drone.sqlite 的數(shù)據(jù)庫來處理數(shù)據(jù)庫模式的創(chuàng)建和遷移。要安裝 SQlite3 我們要完成以下幾步。
Ubuntu 14.04
因?yàn)?SQlite3 存在于 Ubuntu 14.04 的默認(rèn)軟件庫,我們只需要簡單的使用 apt 命令安裝它。
代碼如下:
# apt-get install libsqlite3-dev
CentOS 7
要在 Centos 7 上安裝需要使用下面的 yum 命令。
代碼如下:
# yum install sqlite-devel
3. 安裝 Drone
最后,我們安裝好依賴的軟件,我們現(xiàn)在更進(jìn)一步的接近安裝 Drone。在這一步里我們只簡單的從官方鏈接下載對應(yīng)的二進(jìn)制軟件包,然后使用默認(rèn)軟件包管理器安裝 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 機(jī)器上我們要使用 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. 配置端口