どんな記事か
- DockerでRailsを起動した人が、herokuで本番環境を構築できるようになります
どんな人が読むといいか
- DockerでRailsを起動して、「Yay! You’re on Rails!」を表示させている人
- 本番環境に「Yay! You’re on Rails!」を表示させたい人
完成後イメージ
前提条件
- DokerでRailsを起動「Yay! You’re on Rails!」を表示させている
- Herokuアカウントを持っている(無料)
- GitHubアカウントを持っている(無料)
やること(2章立て)
第1章 Railsのファイルたちをいじくる
第2章 Herokuコマンドでデプロイする
第1章 Rails側のファイルたちをいじくる
いじくられるRailsのファイルは3つ
Gemfile
- 以下を追加します
- 特にpg方はバージョン指定
'~> 0.19.0'
ここがミソっぽいです
Gemfile
gem 'sqlite3', groups: %w(test development), require: false
gem 'pg', '~> 0.19.0', group: :production, require: false
heroku.yml (なければアプリの直下にこのファイルを作ろう)
heroku.yml
build:
docker:
web: Dockerfile
run:
web: bundle exec puma -C config/puma.rb
database.yml
- configディレクトリの下にあるはず
- 以下を追加しましょう
- もし初めから「production」が記載されていたら、コメントアウトしておいてね
database.yml
production:
#半角スペース2個分の空白を開ける
<<: *default
adapter: postgresql
encoding: unicode
pool: 5
いじくり完了後、GitHubさんにpushしておきましょう。
忘れずに!!
第2章 Herokuコマンドでデプロイする
ここからは、こちらの記事のほぼパクリです。
Herokuにログインする
ターミナル
$heroku login
ログインできない場合、ここを参考にするとよいですよ。
Herokuにアプリケーションを作成する
ターミナル
$heroku create
Guiからでも作成できますが、なんかうまくいかなかったので、
ターミナルからやろう。
Heroku Container Registryにimageをアップロードするためにログインします
ターミナル
$heroku container:login
ここらへんは丸パクリです。だまってやりましょう。
その後コンテナをpushします。
ターミナル
$heroku container:push web
ここらへんは丸パクリです。だまってやりましょう。
DBにPostgreSQLを使用しているので、add-onを追加します。
ターミナル
$heroku addons:create heroku-postgresql:hobby-dev
ここらへんも丸パクリです。だまってやりましょう。
pushしたアプリケーションをリリースします。
ターミナル
$heroku container:release web
どうやらリリースしないとうまく動かないようです。
Herokuにデプロイ
ターミナル
$git push heroku master
これで完成
ターミナル
$heroku open
このコマンドを打つと自動でアプリが開きます!
(必要になったら)本番環境(heroku)でのマイグレーション
ターミナル
$heroku run rails db:migrate
ただ立ち上げる時は不要です。
ただ、必要になる場合が来るかもしれないので書いときます。
まとめ
- Rails側のファイルを編集すること
- Herokuのコマンドを正しくつかうこと
- 本当にこれであってるのかな?
次回作にご期待ください。