前提・実現したいこと
docker-composeを使用し、python+djangoでherokuへデプロイをしようとしています。
djangoのアプリはhello-worldレベルの簡単なもので、herokuへデプロイのテストをしております。
ここに質問の内容を詳しく書いてください。
heroku openでみると、「application error」となり、logは生野のようになっております。
原因は「No module named 'wsgi'」であると思います。ググって解決しよと試みましたが、できませんでした。
発生している問題・エラーメッセージ
2020-05-31T23:42:57.184101+00:00 app[web.1]: ModuleNotFoundError: No module named 'wsgi'
2020-05-31T23:42:57.184183+00:00 app[web.1]: [2020-05-31 23:42:57 +0000] [7] [INFO] Worker exiting (pid: 7)
2020-05-31T23:42:57.209533+00:00 app[web.1]: [2020-05-31 23:42:57 +0000] [5] [INFO] Shutting down: Master
2020-05-31T23:42:57.209585+00:00 app[web.1]: [2020-05-31 23:42:57 +0000] [5] [INFO] Reason: Worker failed to boot.
エラーメッセージ ModuleNotFoundError: No module named 'wsgi'
該当のソースコード
<procfile>
web: gunicorn django_docker_heroku_first.wsgi
<Dockerfile>
FROM python:3
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
COPY requirements.txt /code/
RUN pip install -r requirements.txt
COPY . /code/
CMD gunicorn --bind 0.0.0.0:$PORT wsgi
<requirements.txt>
Django==2.0
psycopg2
gunicorn
Jinja2
Werkzeug
django-heroku
<runtime.txt>
python-3.7.7
<docker-compose.yml>
version: '3'
services:
db:
image: postgres:9.5.18
environment:
POSTGRES_HOST_AUTH_METHOD: 'trust'
web:
build: .
command: python3 manage.py runserver '0.0.0.0:8001'
volumes:
- .:/code
ports:
- "8001:8001"environment: - POSTGRES_USER= postgres - POSTGRES_PASSWORD= postgres - POSTGRES_DB= db depends_on: - db
補足情報(FW/ツールのバージョンなど)
・local上では、アプリケーションが動いたことは確認できました。
・No module named 'wsgi' のため、installしていないか、pathを正確に通せていないか?だとは思っているのですがよく理解できていません。
・settings.pyは開発用と本番用で分けました
・djangoのプロジェクト名:django_docker_heroku_first
・djangoのアプリケーション名:hogehoge
参考記事
https://qiita.com/akirakudo/items/16a01271b0a39316e439
https://qiita.com/chatrate/items/b77ebe1a11bed8be4a43
https://stackoverflow.com/questions/57918278/modulenotfounderror-no-module-named-wsgi
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/01 22:16
2020/06/01 23:16
2020/06/04 21:37