スポンサーリンク

Docker Desktop for Windowsを試してみる(7)Windows10+WSL2+DockerDesktop + Ruby on Rails7をHerokuにデプロイに苦戦(作成中)

2022年1月26日

<2022/1/23時点>

結局、Dockerのままデプロイすることはできず、Heroku-CLIをインストールしてHerokuにログイン後、

heroku create

git init
git add .
git commit -m  "init"
git push heroku main

heroku run rake db:migrate

で、稼働することができました。いずれ、こちらの記事をちょっと変更した形で、できるようになったら別記事で記載したいと思います。

<元記事はここから開始>

前回は、Windows10のDocker DesktopでRuby on rails 7 + PostgreSQL環境を構築しました。

今回は、このサイトをHerokuにデプロイしてみたいと思います。https://qiita.com/fuku_tech/items/dc6b568f7f34df10cae7 を写経してみたいと思います。

スポンサーリンク

Docker Desktop for Windows目次

  1. (1)WSL2とWindows Desktopのインストール
  2. (2)Swiftコンテナを作成してSwiftを動かしてみる
  3. (3)Windows10でWindowsとwsl2間でのファイルのコピー
  4. (4)Windows10+WSL2+DockerDesktopでJupyterLab環境構築してみる
  5. (5)Windows10+WSL2+DockerDesktopでWordPressを環境構築してみる
  6. (6)Windows10+WSL2+DockerDesktopでRuby on Rails7+PostgreSQLを環境構築してみる【2022年1月時点】
  7. (7)Windows10+WSL2+DockerDesktop + Ruby on Rails7をHerokuにデプロイ
  8. (8)Railsチュートリアル第4版(Rails5.1)の環境構築【2022年1月時点】
  9. (9)dbコンテナ内のpostgresqlの中身を確認する
  10. (10)ProgateのRubyonRails5学習レッスンの環境構築【2022年1月時点】
  11. (11)Windows10+WSL2+DockerDesktopでRuby on Rails7(TailwindCSS+importmap-rails)+PostgreSQLを環境構築してみる【2022年9月時点】
  12. Windows10+WSL2(Ubuntu20.02)でRails7+tailwindcss+jsbundling-rails環境構築【2022年9月時点】

開発環境

Windows 10 Pro 21H1
Hyper-Vを有効化
Windows Docker Desktop 4.0.0
VisualStudioCode (wsl用の拡張機能インストール済み)

WSL2 Ubuntu 20.04 LTS
VisualStudioCode (+拡張機能 )

『Wndows Docker Desktop』+『WSL2のUbuntu』+VSCodeのセットアップについては「Docker for Windowsを試してみる(1)WSL2とWindows Desktopのインストール」をご参照ください。
DockerDesktopでRails開発環境構築については「Docker Desktop for Windowsを試してみる(6)Windows10+WSL2+DockerDesktopでRuby on Rails7+PostgreSQLを環境構築してみる【2022年1月時点】」をご覧ください。

流れ

  1. config/database.ymlを編集
  2. WSL2(Ubuntu)にHeroku Command Line Interface (CLI) をインストール
  3. heroku login -i

config/database.ymlを編集

config/database.yml

production:
  <<: *default
  database: myapp_production
  username: myapp
  password: <%= ENV['MYAPP_DATABASE_PASSWORD'] %>

WSL2(Ubuntu)にHeroku Command Line Interface (CLI) をインストール

https://devcenter.heroku.com/ja/articles/heroku-cli

https://devcenter.heroku.com/ja/articles/heroku-cli にあるように、以下のコマンドを入力しても、ダメでした。

sudo snap install --classic heroku

WSL2 Heroku-cli でググると以下のページが見つかりました。ありがたや。

https://blog.kapiecii.com/posts/2021/09/26/installing-the-heroku-cli-on-wsl2/

curl https://cli-assets.heroku.com/install.sh | sh

Herokuにログイン

heroku container:login 
heroku login

しようとしても、以下のエラー(”Warning: Cannot open browser.”)

ググってみると、こちらのサイト(や、こちらのサイト)を発見。

heroku login -i

無事、ログインできました。ふう。しかし、まだ罠が

heroku container:login とその前の準備

heroku loginできたので、heroku container:loginしようとしたら、以下のエラー

参考: https://www.titanwolf.org/Network/q/412be7e9-953f-4269-b57c-fd437dee48d2/y  に従い、よくわからないものをインストール

sudo apt install gnupg2 pass
heroku container:login

あれ、ダメでした。

ちなみに、

heroku plugins:install heroku-container-registry

は全くだめでした。ググってもよくわからなかったので、一度、WSL2を再起動してVisualStudioCodeを開き、

exec $SHELL -l

した後、

heroku login -i
(Herokuのemailとパスワードを入力)
heroku container:login

したら、なぜかログインできました。(再現できるか不明、、、)

新しいHerokuアプリを作成してデプロイ

# herokuのコンテナレジストリにログイン
heroku container:login

# 新しいappを作成
heroku create

# イメージを作成してコンテナレジストリにpush
heroku container:push web

# postgresqlアドオンの無料プランを追加
heroku addons:create heroku-postgresql:hobby-dev

# DBセットアップ
heroku run rails db:migrate

# イメージをherokuへデプロイ
heroku container:release web

# 実際にアクセスして/usersを確認してみる
heroku open

結構時間がかかるので、herokuサイト見られるかチェック。見ることはできました。

heroku run rails db:migrate

で、エラー?とりあえず、進めてみます。

自動ではブラウザが開いてくれないみたいなので、上のリンクをCtrl+クリックして、開きます。でも、残念ながら、Application errorでダメでした。

言われた通り、

heroku logs --tail

してみましたが、エラーログを読んでも解決方法がさっぱりわかりませんでした。また、今度、試してみたいと思います。難しい、、、

heroku run rails db:migrate のエラーを修正

やはり、heroku run rails db:migrate のところでエラーが出ているので、そこをなんとかする方針としました。

heroku run rails db:migrate bash: rails: command not found

でググると、以下のサイトが出てきました。

https://qiita.com/chiaki-kjwr/items/811c5e82a8cb2daa590f

10分ほどググりまくってもよくわからず、もう一度、

heroku run rails db:migrate

したら、なぜかうまくいったようでした。

heroku container:release web
heroku run rails assets:precompile

参考:https://qiita.com/at-946/items/6958b1d35330c87b8e50

これでもうまくいかず、、、困りました。

heroku container:release web

config/environments/development.rb

Rails.application.configure do
  ...
  config.hosts.clear
end

参考文献

https://qiita.com/sho7650/items/9654377a8fc2d4db236d
@sho7650
更新日 2017年12月23日
Heroku で Docker を使う場合の諸注意

https://www.titanwolf.org/Network/q/412be7e9-953f-4269-b57c-fd437dee48d2/y

https://www.titanwolf.org/Network/q/412be7e9-953f-4269-b57c-fd437dee48d2/y

https://qiita.com/at-946/items/6958b1d35330c87b8e50

https://qiita.com/Akihiro_Nakayama/items/57ad10717568fea2160b
@Akihiro_Nakayama
更新日 2020年05月25日
Dockerで作成したRailsアプリをHerokuにデプロイ

https://losenotime.jp/deploy-heroku/

https://zenn.dev/kino_puehddby/articles/21a3cf0aacee7c
https://zenn.dev/kino_puehddby/articles/21a3cf0aacee7c

【Rails7】DockerでRuby on Railsアプリを構築してHerokuにデプロイするまで
2022.01.08に更新

作成中


Heroku,Rails7

Posted by twosquirrel