Skip to content

dockerを使わずにdroneを使う話

Osamu Habuka edited this page Dec 1, 2017 · 3 revisions

これは何?

これは drone.io Advent Calendar 2017 の二日目のエントリーです。 主催者の @ashphy さんに確認もせずドカドカと土足でアドカレに登録してしまいました。

いつもはふざけた導入をダラダラ書くところですが、アドカレ1日目からローカルにあるブログのデータを全部消してしまうというお茶目な操作ミスをやらかしてしまったので、さっさと本題に進みます。

drone.io

drone.io については一日目の @ashphy さんのエントリー drone.io で作る自分だけのCD環境 を見てください。

で、今日はこの drone.io 環境を docker を使わずに用意するっていう話です。

「え?なんで docker 使わないの?」って疑問に思うかたも居られると思いますが、世の中、docker を入れてない環境のほうが多いんですよ。そしてわざわざ docker 入れるの面倒って思う人も居るわけですよ。(まぁ、簡単に curl -fsSL get.docker.com | sh で済ませればいいっていう話ですがwww)

で、以前までは drone.io の README.md にソースからのビルド方法が書いてあったんですが、去年ぐらいからは docker で使うことを推奨としているためか、docker でやる方法しかインストールガイドに書かれなくなってしまいました。

じゃーどうやってビルドしたらいいの?っていう話ですが、 BUILDING っていうドキュメントにビルド方法が書いてあります。

go 環境の準備

要件に「Install go 1.9 or later」って書いてあります。僕はよく anyenv で goenv を入れて、それから任意のバージョンの golang を入れてますが、それを書きだすと「おいおい、docker 入れるほうが楽じゃねーか」ってなるので、以下でさくっと go 1.9.2 の環境を用意します。

$ wget https://redirector.gvt1.com/edgedl/go/go1.9.2.linux-amd64.tar.gz
$ tar -xzf go1.9.2.linux-amd64.tar.gz
$ export GOROOT=$HOME/go
$ export PATH=$PATH:$GOROOT/bin
$ go version
go version go1.9.2 linux/amd64
$ mkdir -p $GOROOT/1.9.2
$ export GOPATH=$GOROOT/1.9.2

依存関係があるパッケージをインストール

以下を実行

$ go get -u github.com/drone/drone-ui/dist
$ go get -u golang.org/x/net/context
$ go get -u golang.org/x/net/context/ctxhttp
$ go get -u github.com/golang/protobuf/proto
$ go get -u github.com/golang/protobuf/protoc-gen-go

drone-agent と drone-server をインストール

以下を実行

$ go get github.com/drone/drone/cmd/drone-agent
$ go get github.com/drone/drone/cmd/drone-server
$ ls -al go/1.9.2/bin/
合計 41512
drwxr-xr-x 1 osamu osamu       72 12月  2 04:39 .
drwxr-xr-x 1 osamu osamu       18 12月  2 04:30 ..
-rwxr-xr-x 1 osamu osamu 13324499 12月  2 04:31 drone-agent
-rwxr-xr-x 1 osamu osamu 25069808 12月  2 04:39 drone-server
-rwxr-xr-x 1 osamu osamu  4105664 12月  2 04:30 protoc-gen-go

ってな感じでインストール完了です。起動方法とか使い方はまた後日書きます。