Arukasデプロイ用DockerHub webhookレシーバ
1.7K
DockerHub & Arukas 連携Webhook アダプター
関連記事:Qiita:arukas-shipでプルリク駆動デリバリー
DockerHubへのDockerイメージpush時に送信できるWebhookを利用して ArukasへのDockerコンテナのデプロイを行います。

DockerのコンセプトであるBuild, Ship, and Run Any App, Anywhereのうち、Shipを担当するものです。
arukas-shiparukas-shipを用いることで、手元のマシンで開発/テストしたDockerfileなどをGithub/Bitbucketへpushすれば
DockerHubでビルド(Build)、arukas-shipでArukasへデプロイ(Ship)、Arukasで実行(Run)出来るようになります。
arukas-shipコンテナ起動DockerHubからのWebHookを待ち受けるためのコンテナを起動します。 あらかじめArukas APIキーを取得しておいてください。
Arukas コントロールパネルから新しいアプリケーションを作成します。

各項目は以下のように入力してください。
| 項目名 | 入力内容 |
|---|---|
| App Name | 任意 |
| Image | yamamotofebc/arukas-ship |
| Instance | 任意(1〜10) |
| Memory | 任意(256 or 512) |
| Endpoint | 任意(ただし.arukascloud.io上で一意でないと登録できない) |
| Port | 8080(下記のSHIP_PORTと同じ値を設定する) |
| Env | 下記の4つを登録 |
| Cmd | なし |
ARUKAS_JSON_API_TOKEN : Arukas APIトークンARUKAS_JSON_API_SECRET : Arukas APIシークレットSHIP_TOKEN : 任意のランダムな文字列SHIP_PORT : 8080SHIP_TOKENはDockerHubからのWebHook登録時の認証用です。
WebHookのURLにここで指定したトークンを含めることで認証を行っています。
任意の十分に長いランダムな文字列を指定してください。
Arukas上でコンテナを起動したらEndpointのURLを控えておきます。
DockerHubでAutomation Buildリポジトリを追加します。

WebHookの設定を行います。

WebHook URLは以下のように設定します。
[控えておいたEndpointのURL]?token=[SHIP_TOKENに設定した文字列]&app=[任意のアプリケーション名]
例: https://shipping.arukascloud.io?token=YOUR_SHIP_TOKEN&app=TestApplication
appパラメータに指定した名前でArukas上にデプロイが行われます。
あとはAutomation Buildの設定をおこなっているGitリポジトリにPushすれば 自動でArukasへのデプロイが行われます。
すでにArukasへデプロイ済みのコンテナの場合は更新が行われます。
arukas-shipが起動できないんだけど?Arukasコントロールパネル上でエラーが出ていないか確認してください。
エラーが出ていない場合、イメージ名yamamotofebc/arukas-shipが正しいか確認してみてください。
Arukasコントロールパネル上で表示されるEndpoint URLに直接ブラウザなどでアクセスしてみてください。 実際にアプリのデプロイまで確認したい場合はこちらの仕様に沿ったデータを Endoint URLあてにPOSTしてみてください。
arukas-shipがデプロイした時のArukasの設定はどうなってるの?以下のようなパラメーターでデプロイしています。
App Name : DockerHubで設定するWebhook URLに含まれるappパラメータの値Image : DockerHubでWebhook登録したリポジトリのlatestイメージInstance : 1Memory : 256Endpoint : 空欄(Arukasによる自動割り当て)Port : TCP 80番Env : なしCmd : なしこれらを変更したい場合、あらかじめArukas上に同じApp Nameを持つアプリを
作成しておけばOKです。下記質問もご覧ください。
あらかじめArukas上に同じApp Nameを持つアプリを作成しておけばOKです。
arukas-shipは、同じApp Nameを持つアプリがすでにArukas上に存在する場合は
該当アプリの更新(パラメータ変更/コンテナ再起動)を行います。
This project is published under Apache 2.0 License.
Content type
Image
Digest
Size
84.2 MB
Last updated
about 10 years ago
docker pull yamamotofebc/arukas-ship