ServerSideSwift Vapor3.0をHerokuにデプロイ


ServerSideSwiftの勉強で動作環境にHerokuを使用したので、
デプロイまでのメモです。

前提

  • Homebrewインストール済
  • Herokuにアカウントを作成済

インストール

brew tap vapor/tap
brew install vapor/tap/vapor

プロジェクトの作成

vapor new [AppName]

作成が完了するとVaporマークが表示されます。

指定したAppNameでディレクトリが掘られているので移動します。

cd [AppName]

Xcodeプロジェクトを作成します。(そこそこ時間が掛かります)

vapor xcode

完了するとXcodeを開くか聞かれるのでyを入力します。

以下のようなプロジェクト構成になっています。

実行確認

実行し、http://localhost:8080 にアクセスできることを確認します。

routes.swiftを確認すると、helloでHello, world!が表示されるようになっていることが確認できます。


これでVaporアプリの作成、ビルド、実行が完了しました。

Herokuにデプロイ

HerokuのCLIツールをインストールします。

brew install heroku/brew/heroku

Herokuにログインします。
キーを押すとブラウザでHerokuのログイン画面が表示されるのでログインを実行します。

heroku login
heroku: Press any key to open up the browser to login or q to exit:

ブラウザでHerokuのダッシュボードにアクセスし、アプリ作成を行います。

Herokuで動かすためのSwiftバージョンファイルとProcfileを作成します。

echo "5.1.3" > .swift-version
echo "web: Run serve --env production" \
  "--hostname 0.0.0.0 --port \$PORT" > Procfile

HerokuはGitを使用してアプリをデプロイするためGitの準備をします。
Gitの初期化を行います。

git init

現在のブランチがmasterであることを確認します。

git branch
* master

masterブランチにコミットします。

git add .
git commit -m "first commit"

remoteブランチをHerokuに設定します。

heroku git:remote -a [Herokuに作成したAppName]

ビルドパックを設定して、HerokuでVaporを使用できるようにします。

heroku buildpacks:set vapor/vapor

ローカルのmasterをHerokuのmasterにpushします。
Heroku上でのビルドとデプロイも行われる為、そこそこ時間が掛かります。

git push heroku master

最後に表示されたURLにアクセスしデプロイされたことを確認します。

remote: -----> Launching...
remote:        Released v3
remote:        https://testapp-vapor.herokuapp.com/ deployed to Heroku
remote:
remote: Verifying deploy... done.
To https://git.heroku.com/testapp-vapor.git
 * [new branch]      master -> master


これでHeroku上でHello,World!まで確認できました。