Heroku と Dropbox を連携する手順

  • 2
    Like
  • 0
    Comment

Heroku へソースコードをデプロイする方法には、次の3つの方法があります。

  1. Herokuの Git Repositry へ git push する
  2. Github と連携する
  3. Dropbox と連携する

一般的に、1.の方法が使われるケースが多く、2.の場合は、Heroku Pipelinesを利用する場合には必須の方法です。そのため、Heroku への Deployには、Gitが必須と考えられている節がありますが、Dropboxと連携して Deployする方法も用意されています。今回は、その手順について説明します。

前提条件

  • Heroku アカウントを持っている
  • Dropbox アカウントを持っている

Heroku と Dropbox を連携する

まず、Heroku と Dropbox を連携する前準備が必要になります。

Heroku App を準備しよう

すでに準備されているものを再利用するもよし、新たに作るもよし。今回は、専用の Appを作成して連携してみます。dropboxsyc という Heroku App を作成しました。

Screen Shot 2017-02-16 at 15.28.23.png

Dropbox と接続

Appを作成した後であれば、そのまま Deployメニューになりますが、既存のAppを利用する場合は、App を開いて Deploy をクリックします。

Deployment method にて「Dropbox」を選択して Connect to Dropbox ボタンを押します。

Screen Shot 2017-02-16 at 15.28.40.png

Dropboxとの OAuth認証画面が出てくるでしょうから、ログインをするなり、ログイン済みであれば下図のように 許可 をしましょう。

Screen Shot 2017-02-16 at 15.28.48.png

同期されたディレクトリを確認

正常に接続されると、App connected to Dropbox 欄に、Connect to Dropbox/Apps/Heroku/dropboxsync (dropboxsync は App名) と表示されています。このディレクトリがソースコードを置く、ルートディレクトリになります。

Screen Shot 2017-02-16 at 15.30.23.png

もしここで、エラーが発生して「あれっ」となったときでも、reloadしてみると良いです。Dropbox に同時にアクセスしてたりすると、なんかおかしくなったケースがあります。が、ちゃんとできてました。

ソースコードをデプロイしてみよう

それでは、Dropbox へファイルを配置して、Heroku へソースコードをデプロイしてみましょう。

Dropbox へソースコードを配置する

Dropbox ですから、ローカルのディレクトリと同期して、ふつーにソースコードを git clone するなり、一から作成するなり、なんらかの方法で、先程のディレクトリへソースコードを配置します。

今回は、先程のルートディレクトリへ index.php だけ配置して試してみます。

Screen Shot 2017-02-16 at 15.33.29.png

ソースコードを Deploy

必要なファイルをすべて配置し、Dropboxとの同期が完了しましたら、先程の Heroku Dashboard の Deploy 画面を下までスクロールします。

すると、Deploy changes 項目があり、そこに入力欄とDeployボタンが位置されているはずです。ここで、入力欄に何か「コミットメッセージ」を入力して、Deploy ボタンをクリックします。

Screen Shot 2017-02-16 at 15.34.17.png

正常にデプロイが完了すると、下図のように Deploy to Heroku と表示されるでしょう、これでデプロイ完了です。

Screen Shot 2017-02-16 at 15.34.39.png

アプリケーションを開いてみる

Heroku Dashboard 右上の Open app をクリックするなり、URLを入力するなりして、アプリケーションが表示できます。

今回のソースコードは次のとおりです。

index.php
<?
phpinfo();

したがって、次のように phpinfo の画面が表示されています。ちゃんと、php であることも認識されて、deploy されていることがわかります。

Screen Shot 2017-02-16 at 15.34.53.png

完了ヽ(´ー`)ノ

注意事項

local での実行環境を Dropboxとの同期したディレクトリで作成している場合、余計なファイルも Herokuと同期されてしまいます。本家にもあるとおり、Save hard drive space with selective sync による同期の制御や、.gitignore などの利用が付記されています。

FAQ

Dropbox Sync

試しきれていないのですが、ざっくり意訳するとこんな感じです。

.gitignore and ignored files

Dropbox フォルダ上の .gitignore に該当するファイルは Heroku リポジトリへはコミットしないようです。

App renames

Heroku App の名前を変えると、それに合わせて同期先のフォルダも変更しに行くようです。

Conflicted files in Dropbox folder

Dropbox 同期中に発生したエラーで作成されるコンフリクトファイルがあると上手くいかなくなるようです。