実現したいこと
Herokuにデプロイしたいのですが、
We're sorry, but something went wrong.If you are the application owner check the logs for more information.
というエラーが出ているので、解決したい
前提
Dockerでrails(7.0.4) + postgresqlの環境構築をしたアプリを作成しています。
発生している問題・エラーメッセージ
herokuのログは以下のようになっています。
2023-05-15T21:06:48.072789+00:00 app[api]: Release v8 created by user heroku-postgresql@addons.heroku.com 2023-05-15T21:06:48.072789+00:00 app[api]: Update DATABASE by heroku-postgresql by user heroku-postgresql@addons.heroku.com 2023-05-15T21:06:49.173898+00:00 heroku[web.1]: Restarting 2023-05-15T21:06:49.187869+00:00 heroku[web.1]: State changed from up to starting 2023-05-15T21:06:50.040478+00:00 heroku[web.1]: Stopping all processes with SIGTERM 2023-05-15T21:06:50.075166+00:00 app[web.1]: - Gracefully stopping, waiting for requests to finish 2023-05-15T21:06:50.075815+00:00 app[web.1]: Exiting 2023-05-15T21:06:50.236861+00:00 heroku[web.1]: Process exited with status 143 2023-05-15T21:07:08.674312+00:00 heroku[web.1]: Starting process with command `rails server -b 0.0.0.0` 2023-05-15T21:07:11.586711+00:00 app[web.1]: => Booting Puma 2023-05-15T21:07:11.586748+00:00 app[web.1]: => Rails 7.0.4.2 application starting in production 2023-05-15T21:07:11.586749+00:00 app[web.1]: => Run `bin/rails server --help` for more startup options 2023-05-15T21:07:13.001157+00:00 app[web.1]: Puma starting in single mode... 2023-05-15T21:07:13.001172+00:00 app[web.1]: * Puma version: 5.6.5 (ruby 3.1.2-p20) ("Birdie's Version") 2023-05-15T21:07:13.001174+00:00 app[web.1]: * Min threads: 5 2023-05-15T21:07:13.001174+00:00 app[web.1]: * Max threads: 5 2023-05-15T21:07:13.001174+00:00 app[web.1]: * Environment: production 2023-05-15T21:07:13.001175+00:00 app[web.1]: * PID: 2 2023-05-15T21:07:13.001361+00:00 app[web.1]: * Listening on http://0.0.0.0:14464 2023-05-15T21:07:13.003127+00:00 app[web.1]: Use Ctrl-C to stop 2023-05-15T21:07:13.126760+00:00 heroku[web.1]: State changed from starting to up 2023-05-16T00:33:11.136056+00:00 heroku[router]: at=info method=GET path="/" host=sample_app.herokuapp.com request_id=c0554b49-abf5-4bc6-bc39-43a9d0771a66 fwd="27.85.206.14" dyno=web.1 connect=0ms service=614ms status=500 bytes=1827 protocol=https
該当のソースコード
Dockerfile
1FROM ruby:3.1.2 2 3ENV RAILS_ENV=production 4 5ENV TZ Asia/Tokyo 6RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs && apt-get install -y vim && apt-get install -y postgresql-client 7 8RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \ 9 && echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list \ 10 && apt-get update \ 11 && apt-get install -y yarn 12 13WORKDIR /sample_app 14COPY Gemfile Gemfile.lock /sample_app/ 15RUN bundle install 16COPY . /sample_app 17COPY entrypoint.sh /usr/bin/ 18RUN chmod +x /usr/bin/entrypoint.sh 19# ENTRYPOINTとCMDを統合 20ENTRYPOINT ["entrypoint.sh"] 21EXPOSE 3000 22CMD ["rails", "server", "-b", "0.0.0.0"]
database.yml
1default: &default 2 adapter: postgresql 3 encoding: unicode 4 host: db 5 username: postgres 6 password: password #これは、docker-compose.ymlで指定したパスワード 7 pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> 8 9development: 10 <<: *default 11 database: sample_app_development 12 13test: 14 <<: *default 15 database: sample_app_test 16 17production: 18 <<: *default 19 database: sample_app_production 20 username: sample_app 21 password: <%= ENV["SAMPLE_APP_DATABASE_PASSWORD"] %> 22 url: <%= ENV['DATABASE_URL'] %>
試したこと
https://qiita.com/maztak/items/c9189637b2d31318a096
https://qiita.com/TheOkachanPG/items/9167ba77d1edf7addac2
上記の記事を参考にマイグレーションファイルが作成されているか確認しましたが、heroku run bundle exec rails db:migrate RAILS_ENV=production -a sample_app
で作成されていることは確認できました。
ただ、調べても他に参考になる記事がなかったため、知見があればご教授いただきたいです。
あなたの回答
tips
プレビュー