- ITフリーランスの高額案件が豊富9月限定!来社でギフト券5千円分を進呈。高額・独占案件が満載/ギークスジョブgeechs-magazine.com/job
この記事に書いたこと
- Google App Engine for Pythonの無料枠
- Bitbucketの無料プライベートリポジトリ
- 無料のCIサービスWercker
以上を使って、開発→ビルド→リリースを無料で完結させます。
フロー図
図の用語解説
Bitbucket (https://bitbucket.org)
Wercker (http://wercker.com/)
githubやBitbucketに対応した現在ベータで無料のCIサービスです。pushをフックして指定した環境でビルド/デプロイをします。リポジトリの直下に処理の設定を記述したwercker.ymlを置きます。Bitbucketのプライベートリポジトリに無料で対応しているサービスはこれしか確認できませんでした。2015年4月ぐらいにDockerコンテナ内部でのビルド/デプロイがサポートされました。
Google App Engine(for Python)(https://cloud.google.com/appengine/docs/python/)
Paas。アプリケーションの実行環境で対応言語はPython, Java, Go, PHPです。無課金だとリクエスト数やデータ書き込み数、インスタンス起動時間等の制限がありオーバーすると24時間単位でリセットされるまでその機能が使えません。
google/cloud-sdkコンテナ内部からのデプロイ
Werckerでは指定したDockerコンテナの内部に連携させたリポジトリをcloneしてビルドとデプロイを行います。このデプロイ方法がWercker用の設定ファイルに書く内容となります。また、OAuth2での認証方法ではデプロイ時にブラウザから指定アドレスにアクセスしての認証が必要となるので今回はp12形式証明書を使用したデプロイを行いました。
キーの生成方法
Google Developers Console( https://console.developers.google.com/project )で生成します。 デプロイするプロジェクトを選び認証情報を選択します。 続いて、新しいクライアントIDを作成します。 クライアントIDの作成でサービスアカウントを選択します。 証明書のダウンロードが始まります。このファイルと画面に表示されているメールアドレスを使用して認証をします。
以上で、準備が整いました。
wercker用の設定ファイルの書き方
対象のプロジェクトの直下にWercker設定用のwercker.ymlとダウンロードした証明書を追加します。ソース中の"$WERCKER_SOURCE_DIR"にはBitbucketからcloneしたソースが入っています。
デプロイ準備
上記で指定したdeployの実行設定をします。まず、Settingsを選択します。
werckerに未定義のデプロイ方法なのでcustom deployを選びます。
Deploy target name: 好きな名前
Auto deploy: チェックを付けると対象ブランチのビルド完了時に自動でデプロイされます。
これでビルド完了後にビルドされます。
ビルド済みのアプリケーションのデプロイ実行
ビルド済みのアプリケーションに関しては手動でデプロイもできます。
ビルド結果からidを選択して詳細画面へ。
Deploy to を選択すると…
先ほど作成した「gae」が出ています。
デプロイメッセージを入力して、Start Deployします。
緑に慣れば、完了です。
参考
Google Cloud StorageのAPIを利用するための手順 | Oreradio.memo
Cloud SDKにおけるp12証明書を使用した認証方法が記載してある貴重なページです。このページが糸口となり認証ができるようになりました。
gcloud auth activate-service-account - Cloud SDK — Google Cloud Platform
googleが提供しているCloud SDKの認証リファレンスです。
google/cloud-sdk Repository | Docker Hub Registry - Repositories of Docker Images
googleが提供しているCloud SDKのコンテナです。google cloud sdkがたくさん入っています。2015/06/16時点では以下のsdkがサポートされています。 - App Engine SDK for Go - App Engine SDK for Java - App Engine SDK for Python and PHP - Big Query Command Line Tool - Cloud DNS Admin Command Line Interface - Cloud SQL Admin Command Line Interface - Cloud Storage Command Line Tool - Compute Engine Command Line Tool - Preview Command Line Tools
Werckerの仕組み,独自のboxとstepのつくりかた | SOTA
werckerの仕組みに関してわかりやすく書いてあります。この記事を何度も読んでwerckerを始めることが出来ました。文中ではdockerを使用したビルド/デプロイの話は補足程度しか出てきていませんが文中のboxが2015/04にdockerでも可能になったと思いながら読めます。
0 コメント:
コメントを投稿