LoginSignup
2
1

More than 1 year has passed since last update.

Rails6+MySQL+DockerでHerokuへのデプロイ手順

Last updated at Posted at 2022-05-07

まずはHerokuのアカウントを作りましょう
https://id.heroku.com/login

Heroku CLIを入れる

$ brew tap heroku/brew && brew install heroku

Herokuがインストールできていることを確認

$ heroku -v
heroku/7.56.1 darwin-x64 node-v12.21.0

config/database.ymlを修正
 productionの部分を修正

config/database.yml
production:
  <<: *default
  host: <%= ENV['DB_HOSTNAME'] %>
  port: <%= ENV['DB_PORT'] %>
  username: <%= ENV['DB_USERNAME'] %>
  password: <%= ENV['DB_PASSWORD'] %>
  database: <%= ENV['DB_NAME'] %>

heroku.ymlを作成
 ※Docker使用しない場合は作成しなくて良い

heroku.yml
build:
  docker:
    web: Dockerfile
run:
  web: bundle exec puma -C config/puma.rb

Herokuでアプリケーションを作成

$ heroku create

リモートに接続
heroku git:remote -a <アプリ名>

HerokuでMySQLを使用する際はcleardbに変更するため下記のコマンド

$ heroku addons:create cleardb:ignite

コンテナをherokuにデプロイ

$ heroku stack:set container

Herokuアプリの環境変数設定

まずは設定を確認

$ heroku config
=== <アプリの名前> Config Vars
CLEARDB_DATABASE_URL: mysql://<ユーザー名>:<パスワード>@<ホスト名>/<データベース名>?reconnect=true

上記コマンドで表示されたそれぞれの値を変数に設定

$ heroku config:add DB_NAME='<データベース名>'
$ heroku config:add DB_USERNAME='<ユーザー名>'
$ heroku config:add DB_PASSWORD='<パスワード>'
$ heroku config:add DB_HOSTNAME='<ホスト名>'
$ heroku config:add DB_PORT='3306'
$ heroku config:add DATABASE_URL='mysql2://<ユーザー名>:<パスワード>@<ホスト名>/<データベース名>?reconnect=true'
$ heroku config:add CLEARDB_DATABASE_URL='mysql2://<ユーザー名>:<パスワード>@<ホスト名>/<データベース名>?reconnect=true'

もう一度設定を確認しましょう。下記のように表示されていたらOK

$ heroku config
=== <アプリの名前> Config Vars
CLEARDB_DATABASE_URL: mysql2://<ユーザー名>:<パスワード>@<ホスト名>/<データベース名>?reconnect=true
DATABASE_URL:         mysql2://<ユーザー名>:<パスワード>@<ホスト名>/<データベース名>?reconnect=true
DB_HOSTNAME:          <ホスト名>
DB_NAME:              <データベース名>
DB_PASSWORD:          <パスワード>
DB_PORT:              3306
DB_USERNAME:          <ユーザー名>

Container Registryにログイン

$ heroku container:login

Container Registryにdocker imageをpush

$ heroku container:push web

HerokuにPush

$ git push heroku main

Herokuのmigrate:status確認

$ heroku run rails db:migrate:status

Herokuでmigrate

$ heroku run rails db:migrate

Webサイトを開く

$ heroku open

ご自身のアプリが表示されれば完了!

2
1
0

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
2
1