Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
0
Help us understand the problem. What is going on with this article?
@masso

Docker-based deployments to heroku of Rails App(postgres) 2020.02

More than 1 year has passed since last update.

Overview

ここに書くこと

  • Dockerコンテナ上で動作するRailsアプリケーションに関する話です
  • Railsアプリケーションをherokuにデプロイする話です
  • dbはpostgreSQLを使います

Prerequisite

  • 以下の開発環境が出来上がっている
    • railsサーバー, dbサーバー用のdockerコンテナ(postgreSQL)のみ
    • docker-composeでコンテナ同士が協調している
  • ローカルでrailsアプリが正常動作している
    • rails s + ブラウザにてWebページの確認ができる

System

  • Docker
    • ver: 19.03.5, build 633a0ea
  • Docker-compose
    • ver: 1.25.2, build 698e2846
  • heroku CLI
    • ver: 7.36.3 darwin-x64 node-v12.13.0

Table of Contents

  1. Conclusion
  2. -aオプションが必要
  3. dbコンテナはherokuのアドオンを使う
  4. 参考にさせていただいたページ

Main

1. Conclusion

まず、結論です。以下の順にコマンドを打てば良いです。

docker-based-deployments-to-heroku(rails-app)
# webサービスイメージをherokuにpush
heroku container:push web -a myapp
# postgresql用add-onを作成する(大事)
heroku addons:create heroku-postgresql -a myapp
# webサービスコンテナをリリース(heroku上でコンテナを実行する?)
heroku container:release web -a myapp
# heroku上でdbのマイグレーション
heroku run rails db:migrate -a myapp
# デプロイしたWebページを開く
heroku open -a myapp

基本的には、参考にさせていただいたサイト通りなのですが、
いくつかそのままでは実行できない箇所があったので以下記述します。

2. -aオプションが必要

おおよそ全てのコマンドにおいて、
デプロイ対象のインスタンス(herokuではdynoと呼ばれる)の名称を指定する必要があります。
名称は、herokuのマイページでも確認できますし、CLIでheroku appsと入力しても確認できます。

ダメな例
heroku container:push web

と入力すると

エラーメッセージ
 ›   Error: Missing required flag:
 ›     -a, --app APP  app to run command against
 ›   See more help with --help

というエラーメッセージが出るので、-a オプションで指定します。

良い例
heroku container:push web -a myapp

3. dbコンテナはherokuのアドオンを使う

herokuではvolumeが使えません。
したがって、PostgreSQLはherokuのアドオンを利用して、
webコンテナと接続させます。その設定が heroku addons:create heroku-postgresql -a myapp です。

4. 参考にさせていただいたページ

本記事は必要最小限の内容しか記述していません。
以下に有用な情報があります。

0
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
masso
物理出身のエンジニア+研究者(画像処理/機械学習/PointCloud/データ分析/統計/C++/Python/Ruby) 最近はGCPを主軸にデータエンジニアリングも
data-learning-guild
データ分析人材のキャリア構築を支援するためのオンラインコミュニティです

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
0
Help us understand the problem. What is going on with this article?