LoginSignup
2

More than 5 years have passed since last update.

Bitbucket + SourceTree を使って,Deisへ Web アプリをデプロイする

Last updated at Posted at 2017-01-30

本稿で行うこと。

Windows に Deis Workflow CLI をインストールし,
SourceTree を用いて認証用の鍵を作成し登録したあとの作業は,Webアプリのデプロイです。
やってみましょう。

外部の Git リポジトリとしては GitHub が一般的です。
しかし,零細規模では,プライベートリポジトリを無料で複数持てる Bitbucket を用いる例が多いのではと思いますので,そちらで例示します。

本稿では,作業者が下記のような状態にあることを想定します。

  • Bitbucket には既にプロジェクトと Git リポジトリが存在している。
  • 既に誰かが Web アプリのソースコードを Bitbocket の Git リポジトリに登録している。
  • さきほど上記プロジェクトに参加したばかり。
  • Git の使い方は知っている。
  • 使用する端末は Windows 系。
  • Workflow CLI と SourceTree はインストール済み。
  • deis.exe register および deis.exe login を実行済み。

作業

順番に説明します。

Bitbucket への接続

Web検索をかけてみたらとても良いブログエントリがありました。
先日,筆者が書いた記事よりも内容が濃く解りやすいと思います。

Deis へのデプロイのための設定

SourceTree から clone したリポジトリを選択した状態で「端末」ボタンを押し,コマンドラインウインドウを開きます。
開いたら deis.exe コマンドを実行するのですが,デプロイするWebアプリが Deis 上に存在するかどうかで,オプションが異なります。

いずれにせよ,deis.exe は内部で git remote:add を呼び出し,設定します。

新しく Web アプリを生成する場合

deis.exe create {アプリ名}

{アプリ名} は省略可能です。省略した場合には適当な名前が割り当てられます。

既にデプロイ済みの Web アプリを更新する場合

deis.exe remote:add -a {アプリ名}

アプリ名は省略できません。

デプロイ

Deis は Heroku 互換ですので,git push でデプロイのためのビルドが開始されます。
コマンドラインの場合は,git push deis master でプッシュします。

SourceTree の場合,下記の手順となります。

  1. 「プッシュ」ボタンを押してプッシュウインドウを表示させる。
  2. プッシュ先リポジトリを deis にする。
  3. プッシュ対象のブランチを master にする。
  4. OK ボタンを押す。

デプロイが拒絶されたら?

稀にデプロイが拒絶される場合があります。
初回での場合 deis.exe keys:add の設定ミスも疑われますが,
Deis のバグや過負荷と思われる拒絶も稀に起きるようです。
設定ミスの可能性は無い,という自信がある場合は,サーバ管理者に問い合わせましょう。

確認

デプロイされた Web アプリは,http://{アプリ名}.{Deis のベースドメイン名}/ でアクセス可能となります。

Deis のベースドメイン名とは,ログインの時に指定した URL の http://deis.{ここの部分のことです}/

Web ブラウザからのアクセスで 5xx エラーが返ってくるときは?

Deis は,Kubernetes を実行環境の基盤としています。
背後では下記のようなタスクが走ります。
このため,複数ノードの環境では,ビルド完了からデプロイ完了まで時間がかかることがあります。

  1. Deis builder がデプロイ終了時に Docker リポジトリにコンテナイメージを push。
  2. その後 Kubernetes が Docker リポジトリからコンテナイメージを pull。
  3. Kubernetes Pod として実行。

デプロイ完了後に deis.exe ps を実行すると,アプリを受け持っているコンテナの状態がわかります。
up になっているのが正常です。
502 エラーが返ってきて image pulling の場合は,しばらく待ってみてください。

それ以外の状態になっている場合には…,おそらく,デプロイした Web アプリにバグがあるか,Deis や Kubernetes がトラブっています。
後者の場合はサーバ管理者に問い合わせましょう。

まとめ

以上,文章にすると煩雑ですが,慣れるとルーチンワークです。ご参考になれば幸いです。

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
2