前提・実現したいこと
Dockerを用いたgcp(gke)デプロイの為、
開発環境と本番環境でDockerfile等を分けたが本番環境用コンテナ起動不可
※Gunicorn起動エラー
(Python/Django/Docker/Gunicorn/Nginx)
発生している問題・エラーメッセージ
dockerlogs
1django | ModuleNotFoundError: No module named 'jointparty'※プロジェクト名 2django | [2019-12-18 10:04:17 +0000] [7] [INFO] Worker exiting (pid: 7) 3django | [2019-12-18 10:04:17 +0000] [1] [INFO] Shutting down: Master 4django | [2019-12-18 10:04:17 +0000] [1] [INFO] Reason: Worker failed to boot.
下記docker-compose.prod.ymlのこちらの記述でエラー発生 "command: gunicorn jointparty.wsgi:application --bind 0.0.0.0:8000"
該当のソースコード
dockercomposeprodyml
1version: '3.7' 2 3services: 4 django: 5 build: 6 context: . 7 dockerfile: Dockerfile.prod 8 # ↓起動順番を調整(本来はentrypoint.shで処理すべき)20191218 9 depends_on: 10 - postgres 11 - nginx 12 # サービス起動後に入力されるコマンドを設定 13 command: gunicorn jointparty.wsgi:application --bind 0.0.0.0:8000 14 15 volumes: 16 - static_volume:/usr/src/app/staticfiles 17 expose: 18 - 8000 19 env_file: .env.prod 20 depends_on: 21 - postgres 22 23 postgres: 24 image: postgres:12.0-alpine 25 volumes: 26 - ./postgres_data:/var/lib/postgresql/data 27 env_file: .env.prod.db 28 29 nginx: 30 build: ./nginx 31 volumes: 32 - static_volume:/usr/src/app/staticfiles 33 ports: 34 - 1400:80 35 depends_on: 36 - django 37 38volumes: 39 postgres_data: 40 static_volume: 41
試したこと
2日間近く色々試して頭がパンクしました。。
Pythonを学習初めて数週間なのですが、Dockerに手を出して打ちのめされています。
dockerに入りshellコマンドで
# cd app && gunicorn jointparty.wsgi:application --bind 0.0.0.0:8000 [2019-12-18 10:34:25 +0000] [15] [INFO] Starting gunicorn 20.0.4 [2019-12-18 10:34:25 +0000] [15] [INFO] Listening at: http://0.0.0.0:8000 (15) [2019-12-18 10:34:25 +0000] [15] [INFO] Using worker: sync [2019-12-18 10:34:25 +0000] [17] [INFO] Booting worker with pid: 17 /usr/local/lib/python3.8/site-packages/environ/environ.py:637: UserWarning: Error reading .env - if you're not configuring your environment separately, check this. warnings.warn(
このように別のエラーが発生します。
docker関係のファイルでディレクトリがどうなっているのかどう試しても上手くいきません。。
当たり前かもしれませんが、上記エラー発生するコマンドを
"command: python app/manage.py runserver 0.0.0.0:8000"
こちらに変えるとエラーなく起動します。
wsgi.pyの設定なのかsettings.pyなのか、、
情報が曖昧で大変申し訳ございませんが、お助け頂けたらと思います。
よろしくお願い致します。
20191219追加情報(dockerログ)
dockerログの全体を追記します
dockerps
1 Name Command State Ports 2---------------------------------------------------------------------------------------------- 3docker-with-django_django_1 gunicorn jointparty.wsgi:a ... Exit 3
logs
1django_1 | [2019-12-19 03:18:32 +0000] [1] [INFO] Starting gunicorn 20.0.4 2django_1 | [2019-12-19 03:18:32 +0000] [1] [INFO] Listening at: http://0.0.0.0:8000 (1) 3django_1 | [2019-12-19 03:18:32 +0000] [1] [INFO] Using worker: sync 4django_1 | [2019-12-19 03:18:32 +0000] [7] [INFO] Booting worker with pid: 7 5django_1 | [2019-12-19 03:18:32 +0000] [7] [ERROR] Exception in worker process 6django_1 | Traceback (most recent call last): 7django_1 | File "/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py", line 583, in spawn_worker 8django_1 | worker.init_process() 9django_1 | File "/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py", line 119, in init_process 10django_1 | self.load_wsgi() 11django_1 | File "/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py", line 144, in load_wsgi 12django_1 | self.wsgi = self.app.wsgi() 13django_1 | File "/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py", line 67, in wsgi 14django_1 | self.callable = self.load() 15django_1 | File "/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py", line 49, in load 16django_1 | return self.load_wsgiapp() 17django_1 | File "/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py", line 39, in load_wsgiapp 18django_1 | return util.import_app(self.app_uri) 19django_1 | File "/usr/local/lib/python3.8/site-packages/gunicorn/util.py", line 358, in import_app 20django_1 | mod = importlib.import_module(module) 21django_1 | File "/usr/local/lib/python3.8/importlib/__init__.py", line 127, in import_module 22django_1 | return _bootstrap._gcd_import(name[level:], package, level) 23django_1 | File "<frozen importlib._bootstrap>", line 1014, in _gcd_import 24django_1 | File "<frozen importlib._bootstrap>", line 991, in _find_and_load 25django_1 | File "<frozen importlib._bootstrap>", line 961, in _find_and_load_unlocked 26django_1 | File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed 27django_1 | File "<frozen importlib._bootstrap>", line 1014, in _gcd_import 28django_1 | File "<frozen importlib._bootstrap>", line 991, in _find_and_load 29django_1 | File "<frozen importlib._bootstrap>", line 973, in _find_and_load_unlocked 30django_1 | ModuleNotFoundError: No module named 'jointparty' 31django_1 | [2019-12-19 03:18:32 +0000] [7] [INFO] Worker exiting (pid: 7) 32django_1 | [2019-12-19 03:18:32 +0000] [1] [INFO] Shutting down: Master 33django_1 | [2019-12-19 03:18:32 +0000] [1] [INFO] Reason: Worker failed to boot. 34
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。