Dockerで作成したRailsアプリをHerokuにデプロイ


はじめに

  • Dockerで作成したRailsアプリをアップロードするための忘備録です。
  • Railsアプリの作成方法は、以下の記事で紹介しています。

【Imagemagick対応】Dockerを利用して、Rails環境を作成
https://qiita.com/NA_simple/items/5e7f95ae58eec5d20e1f

Herokuアプリの作成

  • Dockerコンテナを動かすためのアプリを作成します
  • Herokuのトップページにアクセスしてログイン

  • [ New ]ボタン→ [ Create new app ]を選択

  • App nameを決めます

    • この記事では例として、abcdefgappとします
  • これでアプリの新規作成ができました

DBの追加

  • DBはHerokuのadd-onを使用します
  • 先ほど作成したアプリ abcdefgappのページに行きます

    • Installed add-ons には何もない状態です
    • Configure Add-onsをクリック
  • 検索窓に heroku postgresと打って、選択します

    • ※Plan name では有料・無料オプションを選択できます
    • 今回は課金しないので、Hobby Devです
    • Provision をクリック
  • アプリのトップページに Postgresコンテナが生成されていればOK

  • 次の手順で必要になるので、赤枠で囲ったコンテナ名を覚えてください

    • このアプリでは、例) postgresql-fluffy-97609でした
  • DBコンテナの準備は完了です。

コンテナをHerokuにプッシュ

  • プッシュするRailsコンテナは、こちらの記事 で生成しています
  • プッシュする前に、必ずコンテナを停止してくださ い
    • (docker-compose stop や down 等)
  • heroku CLIを使用します
  • RailsのDockerファイルを置いているディレクトリに移動します

herokuにlogin

  • 次の2つのコマンドを入力
$ heroku login
$ heroku container:login

作成したHeroku app上にコンテナをpush

$ heroku container:push web -a [アプリ名]
$ heroku container:release web -a [アプリ名]
  • ※ ここでの [アプリ名]とは、herokuアプリの作成 で作成したアプリ名のことです
    • 本記事では、abcdefgappという名前で作成しました

コンテナとpostgreSQLを結びつける

$ heroku addons:attach [postgresコンテナ名] -a [アプリ名]
  • ※ postgresコンテナ名とは、DBの追加の際に記録しておいたコンテナ名です
    • 本記事では例) postgresql-fluffy-97609でした
    • 分らない方は、記事上部の DBの追加 欄をご確認ください

マイグレーションの実行

$ heroku run rake db:migrate -a [アプリ名]

アプリのオープン

$ heroku open -a [アプリ名]

ここまでのコマンドまとめ

$ heroku login
$ heroku container:login
$ heroku container:push web -a abcdefgapp
$ heroku container:release web -a abcdefgapp
$ heroku addons:attach postgresql-fluffy-97609 -a abcdefgapp
$ heroku run rake db:migrate -a abcdefgapp
$ heroku open -a abcdefgapp
  • 自分のアプリ名に書き直して、メモ帳などに保存すると使いまわせます
  • permission denied等のエラーが出る際は、
    • heroku container:login 等を再度実行ください

動作確認

  • herokuのアプリページ(ここでは abcdefgapp )を開く
  • 右上の Open app をクリックするとプッシュしたページが開く

  • Yey! you are on Rails!

  • アドレスがabcdefgapp.heroku.comになっています

前の記事

【Imagemagick対応】Dockerを利用して、Rails環境を作成
https://qiita.com/NA_simple/items/5e7f95ae58eec5d20e1f