LoginSignup
24
20

More than 3 years have passed since last update.

Herokuデプロイにおける、Dockerの動き

Last updated at Posted at 2019-03-30

利用環境

  • Docker18.09.1
  • Rails5.2.2
  • Ruby2.5.3
  • Mac OS Mojave10.14.3

dockerのherokuデプロイ

Railsとdocker環境を利用している場合、herokuへのデプロイのやり方は通常と少し異なります。
例えば、

heroku push origin master

上記は、おなじみのデプロイ方法かと思いますが、docker利用の場合は、使えません。
では、どうするか?

@akirakudo
さんの記事を参考にします。

dockerのherokuデプロイ手順

まず、dockerコンテナを削除します。

docker-compose down

次に、herokuへログインします。

heroku login

herokuに登録がお済みでない方は、ここで登録をお願いします(クレジットカード情報の登録まで必要です)。

続いて、herokuコンテナへログインします。

heroku container:login

herokuにてアプリを作成します。

heroku create

そして、dockerイメージをビルドし、herokuアプリへpushします。
コンテナを削除しますが、ここでイメージをビルドするので、現時点の状態がherokuへ反映されます。

heroku container:push web

dockerのデータベースにPostgreSQLを利用しますので、herokuにてadd-onを取得します。
この辺りの感覚は、実際にherokuのアプリページをみた方がイメージしやすいかもしれません。

heroku addons:create heroku-postgresql:hobby-dev

hobby-devのadd-onは無料で使用できますから、ご安心ください。

そして、herokuにアプリをリリースします。

heroku container:release web

herokuアプリを起動します。

heroku open

感じた疑問点

ここで、私が感じた疑問点は、以下の2つです。

  • heroku.yml

ネット上でdockerのherokuデプロイにheroku.ymlファイルを作成するやり方がありました。
これは、最近リリースされた機能のようで、こちらの方法でもデプロイできるようです。
heroku公式

  • database.yml

あと、Railsのdatabase.ymlでのproductionに関する記述が、herokuで反映されていないことも疑問でしたが、どうやら、herokuがそこを書き換えるようです。

以上が、herokuでのdockerコンテナのpush方法でした。
次回は、heroku.ymlでデプロイしたいと思います。

24
20
1

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
24
20