0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Dockerで構築されたRailsをHerokuへデプロイ

Last updated at Posted at 2020-03-06

理解が浅く、間違った部分があったり、強引な方法になっている可能性もあるのでご了承ください。
また、アドバイス等あれば是非ご教示いただければ幸いです。

##状況

Dockerで構築されたRailsのサービスをherokuへデプロイする際に、
Dockerのコンテナ内から、$ git push heroku masterとデプロイを行おうとしても、以下のエラーが出て進めませんでした。

 Mysql2::Error::ConnectionError (Unknown MySQL server host 'db' (0))

他の方の記事で解決方法になっているようなことを行っていても、エラー内容が変わらず解決しなかったです。
いくつかの記事を見ていくうちに、Dockerコンテナからではなくローカルで操作しているのではないかと思い、ローカルから行うことにしました、
(もしかしたらDockerのコンテナからでもできるのかもしれないです。)

Herokuをターミナルから操作できるように

ターミナルからherokuで使うコマンドを入力してもheroku: command not foundとメッセージが帰ってくるため、
まずは、Herokuをターミナルから操作するためのコマンドツールをインストールしました。

$ brew install heroku/brew/heroku

その後は、こちらの記事を参考に、進めていったのですが、

DBセットアップのところでつまずきました。
詳しくはこちらの記事にまとめていますので、参考にしてみてください。


PG::UndefinedTable: ERROR: table " " does not existとでて、マイグレーションできない

##pushできない
$ git push heroku master とデプロイをしようとしても、Everything up-to-dateと返ってきて、デプロイができない。

作業しているブランチ名を指定しないといけなかった。
(masterにマージしてから行えば、$ git push heroku masterでできるかと思います。)

$ git push heroku ブランチ名:master

また、上の$ git push heroku ブランチ名:masterを実行後に、以下のエラーが出てきました。
ここは、エラーに書かれているheroku stack:set heroku-18を実行すると解決できました。
(heroku-18がデフォルトだそうなんですが、アップグレードしないといけませんでした。)
公式のHeroku-Stacks

remote: =!= Your app does not include a heroku.yml build manifest. To deploy your app, either create a heroku.yml: https://devcenter.heroku.com/articles/build-docker-images-heroku-yml
remote: Or change your stack by running: 'heroku stack:set heroku-18'
remote: Verifying deploy...
remote: 
remote: !       Push rejected to サービス名.
remote: 
To https://git.heroku.com/サービス名.git
 ! [remote rejected] ブランチ名 -> master (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/サービス名.git'
$ heroku stack:set heroku-18
Setting stack to heroku-18... done

これで、エラーを解消でき、再び入力するとデプロイが完成しました。

$ git push heroku ブランチ名:master

##参考記事

Heroku CLIの導入と初期設定
Heroku公式
DockerでRailsの環境構築してHerokuへデプロイする
【Docker】Rails圧倒的環境構築&Herokuへ簡単デプロイ
Heroku - git push heroku masterするとEverything up-to-dateとなる
【初心者向け】railsアプリをherokuを使って確実にデプロイする方法【決定版】

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?