LoginSignup
54
53

More than 3 years have passed since last update.

OSS Drone CI の 構築方法

Last updated at Posted at 2017-07-05

はじめに

DroneとはOSS版クラウド版で提供されているCIツールです。

download.png

今回は、OSS版のDroneを起動し、Github(Enterprise)と連携したので、その手順をまとめます。

ザクザク行けば15分程度でDrone起動とGithub連携認証までいけると思います。

※Docker自体の環境構築がお済みでない方は、DockerをMacにインストールする をご参考下さい。

また、@y_tsubukuが開発するyaritori - メール共有システムも、良ければご覧ください :tada:

docker-compose.ymlを作成する :sparkles:

適当なディレクトリ(今回はdroneとします)にdocker-compose.ymlを作成します。

$ mkdir drone && cd drone
$ vi docker-compose.yml
docker-compose.yml
version: '2'

services:
  drone-server:
    image: drone/drone:0.7.3
    ports:
      - 80:8000
    volumes:
      - ./drone:/var/lib/drone/
    restart: always
    environment:
      - DRONE_OPEN=true # ユーザ登録を可能にする
      - DRONE_HOST=${DRONE_HOST} # 後述
      - DRONE_GITHUB=true # Githubを使用する
      - DRONE_GITHUB_URL=${DRONE_GITHUB_URL} # Github Enterpriseを使用している場合に設定する
      - DRONE_GITHUB_CLIENT=${DRONE_GITHUB_CLIENT} # 後述
      - DRONE_GITHUB_SECRET=${DRONE_GITHUB_SECRET} # 後述
      - DRONE_SECRET=${DRONE_SECRET} # 後述
      - DRONE_GITHUB_PRIVATE_MODE=true # Github Enterpriseをプライベートモードで動かしている場合はtrueにする

  drone-agent:
    image: drone/drone:0.7.3
    command: agent
    restart: always
    depends_on:
      - drone-server
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    environment:
      - DRONE_SERVER=ws://drone-server:8000/ws/broker
      - DRONE_SECRET=${DRONE_SECRET}

Droneを起動する :rocket:

$ docker-compose up

この状態で、http://localhost/ にアクセスすると…

スクリーンショット 2017-07-03 19.22.25.png

これで動作確認ができました :tada:

ngrokでローカルとグローバルを繋ぐ :map:

Githubとの連携にはOauth認証が必要です。
その際、コールバックのURLがグローバルでないとリクエストを受けれないため、
ngrokの使い方(windows, mac) - Qiita
を参考にngrokでグローバルなURLを取得してください。

環境変数を設定する :leaves:

docker-compose.ymlと同じディレクトリに.envを作成します。

.env
DRONE_GITHUB_URL=使用しているドメイン # ex) https://your-domain.com
DRONE_GITHUB_CLIENT=Githubで取得
DRONE_GITHUB_SECRET=Githubで取得
DRONE_SECRET=ランダムな文字列
DRONE_HOST=ngrokで取得したURL
  • DRONE_GITHUB_CLIENTとDRONE_GITHUB_SECRET
  • DRONE_SECRET
  • DRONE_HOST
    • Droneサーバのパブリックアドレス(ここではngrokで取得したURL)を設定
    • Githubのステータスを更新するのに使用される(参考)

Githubにアプリケーションを登録する際の参考

OAuth_Application_Settings.png

ログインする :computer:

https://{ngrokで割り当てられたホスト名}.ngrok.io/login
から、アプリケーションを認証すれば連携可能な状態になります :tada:

welcome___drone.png

終わりに

OSS版Droneを使用すれば、オンプレミス環境での運用も可能です。
Github Enterpriseや、閉じたネットワーク内でのCIとしての有効活用など色々と試して見てもらえればと思います。

54
53
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
54
53