Dockerで作成したRailsアプリをHerokuにデプロイ
はじめに
- Dockerで作成したRailsアプリをアップロードするための忘備録です。
- Railsアプリの作成方法は、以下の記事で紹介しています。
【Imagemagick対応】Dockerを利用して、Rails環境を作成
https://qiita.com/NA_simple/items/5e7f95ae58eec5d20e1f
- Heroku側の状態
- ユーザー登録およびログインが完了した状態からスタートします
- Heroku CLI を使います。
- Downloadページはこちら
- https://devcenter.heroku.com/articles/heroku-cli#download-and-install
Herokuアプリの作成
- Dockerコンテナを動かすためのアプリを作成します
-
Herokuのトップページにアクセスしてログイン
-
App nameを決めます
これでアプリの新規作成ができました
DBの追加
- DBはHerokuのadd-onを使用します
-
先ほど作成したアプリ
abcdefgapp
のページに行きます アプリのトップページに Postgresコンテナが生成されていればOK
-
次の手順で必要になるので、赤枠で囲ったコンテナ名を覚えてください
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 )を開く
Yey! you are on Rails!
アドレスが
abcdefgapp.heroku.com
になっています
前の記事
【Imagemagick対応】Dockerを利用して、Rails環境を作成
https://qiita.com/NA_simple/items/5e7f95ae58eec5d20e1f
Author And Source
この問題について(Dockerで作成したRailsアプリをHerokuにデプロイ), 我々は、より多くの情報をここで見つけました https://qiita.com/Akihiro_Nakayama/items/57ad10717568fea2160b著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .