LoginSignup
82

More than 3 years have passed since last update.

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

Last updated at Posted at 2019-05-10

はじめに

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

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

Herokuアプリの作成

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

  • [ New ]ボタン→ [ Create new app ]を選択
    スクリーンショット 2019-05-08 23.31.26.png

  • App nameを決めます

    • この記事では例として、abcdefgappとします スクリーンショット 2019-05-08 23.37.54.png
  • これでアプリの新規作成ができました

DBの追加

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

    • Installed add-ons には何もない状態です
    • Configure Add-onsをクリック img01.png
  • 検索窓に heroku postgresと打って、選択します
    スクリーンショット 2019-05-09 15.14.45.png

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

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

    • このアプリでは、例) postgresql-fluffy-97609でした img02.png
  • 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 をクリックするとプッシュしたページが開く
    スクリーンショット 2019-05-10 20.15.44.png

  • Yey! you are on Rails!

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

スクリーンショット 2019-05-10 23.58.28.png

前の記事

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

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
82