Bitbucket Cloud
この記事では、Bitbucket Cloud用のDroneサーバをインストールする方法について説明します。サーバは、DockerHubで配布される最小限のDockerイメージとしてパッケージ化されています。
ステップ1:準備
インスタンスをプロビジョニングする
Droneサーバは、標準のhttpポートとhttpsポートを開いた状態で、サーバまたは仮想マシンに(選択したクラウドプロバイダを使用して)インストールする必要があります。 Bitbucketからインバウンドウェブフックを受信するには、インスタンスがドメイン名またはIPアドレスでパブリックにアクセス可能である必要があります。
テスト目的でラップトップにDroneサーバをインストールする場合は、 ngrokなどのサービスを使用して、Droneサーバに公的にアクセス可能なドメイン名を提供することをお勧めします。
OAuthアプリケーションを作成する
Bitbucket OAuthアプリケーションを作成します。コンシューマキーとコンシューマシークレットは、Bitbucketリソースへのアクセスを承認するために使用されます。


共有シークレットを作成する
共有シークレットを作成して、ランナーと中央のDroneサーバ間の通信を認証します。
opensslを使用して、共有シークレットを生成できます。
$ openssl rand -hex 16
bea26a2221fd8090ea38720fc445eca6
ステップ2:ダウンロード
Droneサーバは、軽量のDockerイメージとして配布されます。イメージは自己完結型であり、外部依存関係はありません。
$ docker pull drone/drone:1
ステップ3:構成
Droneサーバは、環境変数を使用して構成されます。この記事では、以下に定義する構成オプションのサブセットについて説明します。構成オプションの完全なリストについては、構成を参照してください。
- DRONE_BITBUCKET_CLIENT_ID
必要な文字列値は、Bitbucket oauthクライアントIDを提供します。 - DRONE_BITBUCKET_CLIENT_SECRET
必要な文字列値は、Bitbucket oauthクライアントシークレットを提供します。 - DRONE_RPC_SECRET
必須の文字列値は、前の手順で生成された共有シークレットを提供します。これは、サーバとランナー間のrpc接続を認証するために使用されます。サーバとランナーには同じシークレット値を指定する必要があります。 - DRONE_SERVER_HOST
必要な文字列値は、外部ホスト名またはIPアドレスを提供します。 IPアドレスを使用する場合は、ポートを含めることができます。例:drone.company.com - DRONE_SERVER_PROTO
必要な文字列値は、外部プロトコルスキームを提供します。この値はhttpまたはhttpsに設定する必要があります。 sslまたはacmeを設定した場合、このフィールドのデフォルトはhttpsです。
ステップ4:サーバを起動します
サーバコンテナは、以下のコマンドで起動できます。コンテナは環境変数を介して構成されます。以下のプレースホルダー値を適切な値に置き換えることを忘れないでください。
1 docker run \
2 --volume=/var/lib/drone:/data \
3 --env=DRONE_BITBUCKET_CLIENT_ID={{DRONE_BITBUCKET_CLIENT_ID}} \
4 --env=DRONE_BITBUCKET_CLIENT_SECRET={{DRONE_BITBUCKET_CLIENT_SECRET}} \
5 --env=DRONE_RPC_SECRET={{DRONE_RPC_SECRET}} \
6 --env=DRONE_SERVER_HOST={{DRONE_SERVER_HOST}} \
7 --env=DRONE_SERVER_PROTO={{DRONE_SERVER_PROTO}} \
8 --publish=80:80 \
9 --publish=443:443 \
10 --restart=always \
11 --detach=true \
12 --name=drone \
13 drone/drone:1
ステップ5:ランナーをインストールする
サーバが稼働したら、ビルドパイプラインを実行するためにランナーをインストールする必要があります。詳細なインストール手順については、ランナーのインストールドキュメントを参照してください。