LoginSignup
4
4

More than 5 years have passed since last update.

AWSのEC2にDockerをインストールしてOSS版Drone 0.4.0を動かす

Last updated at Posted at 2015-11-13

AWSのEC2にDockerをインストールしてOSS版Drone 0.4.0を動かす

背景

前々からDroneに興味があったので構築してみました。Githubなどとの連携を確認するためにAWSのEC2上で動かします。

AWSでEC2インスタンスを用意

VPCを作成してEC2インスタンスを起動します。今回はUbuntuのAmazon EC2 AMI Locatorから15.10(hvm:ebs-ssd)のを用いました。

sshのログインユーザ名は「ubuntu」になります。EIPを割り当ててセキュリティグループを適宜設定します。Githubからはhttpsが通ればOKです。

Ubuntuの設定

ひとまずパッケージを最新にしておきます。

$ sudo apt-get update
$ sudo apt-get -y upgrade

Dockerのstorage driverにaufsを使うためにkernelを変更します。

$ sudo apt-get -y install linux-image-extra-virtual aufs-tools

タイムゾーンと言語を日本語にあわせておきます。

$ sudo timedatectl set-timezone Asia/Tokyo
$ sudo apt-get -y install language-pack-ja
$ sudo update-locale LANG=ja_JP.UTF-8

ここでいったんインスタンスを再起動させます。

Dockerのインストール

以下を参考にインストールしていきます。

リポジトリを登録します。

$ sudo apt-key adv --keyserver hkp://pgp.mit.edu:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
$ echo <<'EOT'>/etc/apt/sources.list.d/docker.list
# Ubuntu Wily
deb https://apt.dockerproject.org/repo ubuntu-wily main
EOT

インストール可能なバージョンを確認します。

$ sudo apt-get update
$ sudo apt-cache policy docker-engine

今回は1.8.3をインストールしてみます。

$ sudo apt-get -y install docker-engine=1.8.3-0~wily
$ sudo systemctl enable docker

Drone 0.4.0を動かす

Droneの設定ファイルを作成します。

$ cat <<'EOT' | sudo tee /etc/drone/dronerc
#!/bin/bash

# server configuration

SERVER_ADDR=":8443"
SERVER_CERT="/etc/server.crt"
SERVER_KEY="/etc/server.pem"

# database configuration

DATABASE_DRIVER="sqlite3"
DATABASE_CONFIG="/var/lib/drone/drone.sqlite"

# remote configuration

REMOTE_DRIVER="github"
REMOTE_CONFIG="https://github.com?client_id=xxx&client_secret=yyy

# docker configuration

DOCKER_HOST="unix:///var/run/docker.sock"
#DOCKER_CERT=""
#DOCKER_KEY=""
#DOCKER_CA=""

# plugin configuration

PLUGIN_FILTER=plugins/*
EOT

REMOTE_CONFIGの「xxx」と「yyy」はGithub上で登録したアプリケーションのものをもってきます。また「/etc/server.crt」と「/etc/server.pem」にサーバのSSL証明書と秘密鍵を用意しておきます。

DroneをDockerイメージから動かします。

$ sudo docker run \
--volume /var/lib/drone:/var/lib/drone \
--volume /var/run/docker.sock:/var/run/docker.sock \
--volume /etc/server.pem:/etc/server.pem \
--volume /etc/server.crt:/etc/server.crt \
--env-file /etc/drone/dronerc \
--restart=always \
--publish=443:8443 \
--detach=true \
--name=drone \
drone/drone:0.4

これで https://(サーバ名)/ からDroneにアクセスできるようになります。

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4