Docker Desktop for Windowsを試してみる(7)Windows10+WSL2+DockerDesktop + Ruby on Rails7をHerokuにデプロイに苦戦(作成中)
<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)WSL2とWindows Desktopのインストール
- (2)Swiftコンテナを作成してSwiftを動かしてみる
- (3)Windows10でWindowsとwsl2間でのファイルのコピー
- (4)Windows10+WSL2+DockerDesktopでJupyterLab環境構築してみる
- (5)Windows10+WSL2+DockerDesktopでWordPressを環境構築してみる
- (6)Windows10+WSL2+DockerDesktopでRuby on Rails7+PostgreSQLを環境構築してみる【2022年1月時点】
- (7)Windows10+WSL2+DockerDesktop + Ruby on Rails7をHerokuにデプロイ
- (8)Railsチュートリアル第4版(Rails5.1)の環境構築【2022年1月時点】
- (9)dbコンテナ内のpostgresqlの中身を確認する
- (10)ProgateのRubyonRails5学習レッスンの環境構築【2022年1月時点】
- (11)Windows10+WSL2+DockerDesktopでRuby on Rails7(TailwindCSS+importmap-rails)+PostgreSQLを環境構築してみる【2022年9月時点】
- 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月時点】」をご覧ください。
流れ
- config/database.ymlを編集
- WSL2(Ubuntu)にHeroku Command Line Interface (CLI) をインストール
- 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 にあるように、以下のコマンドを入力しても、ダメでした。
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://stackoverflow.com/questions/57102124/heroku-login-cannot-open-browser
- https://qiita.com/yadon/items/db3ec786ec410990cec6
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://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/
【Rails7】DockerでRuby on Railsアプリを構築してHerokuにデプロイするまで
2022.01.08に更新
作成中
ディスカッション
コメント一覧
まだ、コメントがありません