2016-11-11 9 views
0

ドッカーを使ってdjangoを設定しようとしていますが、これはtutorialに従っていますが、私のメインモジュールが見つかりません。Gunicornがドッカー付きのメインモジュールを見つけられません

フォルダ構造:起動したときにスロー

import os 
from django.core.wsgi import get_wsgi_application 

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "django_project.settings") 
application = get_wsgi_application() 

は、エラー: "django_project/wsgi.py" のドッキングウィンドウ-compose.yml

web: 
    restart: always 
    build: ./web 
    expose: 
    - "8000" 
    links: 
    - postgres:postgres 
    volumes: 
    - ./web:/usr/src/app 
    env_file: .env 
    command: /usr/local/bin/gunicorn django_project.wsgi:application -w 2 -b :8000 

コンテンツの

/project 
    .env 
    docker-compose.yml 
    /web 
    /static 
    manage.py 
    /django_project 
     /apps_directories... 
     /templates 
     __init__.py 
     settings.py 
     wsgi.py 

ウェブセクション容器:

[2016-11-01 16:39:48 +0000] [7] [INFO] Worker exiting (pid: 7) 
[2016-11-01 16:39:48 +0000] [1] [INFO] Shutting down: Master 
[2016-11-01 16:39:48 +0000] [1] [INFO] Reason: Worker failed to boot. 
[2016-11-01 16:39:49 +0000] [1] [INFO] Starting gunicorn 19.6.0 
[2016-11-01 16:39:49 +0000] [1] [INFO] Listening at: http://0.0.0.0:8000 (1) 
[2016-11-01 16:39:49 +0000] [1] [INFO] Using worker: sync 
[2016-11-01 16:39:49 +0000] [7] [INFO] Booting worker with pid: 7 
[2016-11-01 16:39:49 +0000] [7] [ERROR] Exception in worker process 
Traceback (most recent call last): 
    File "/usr/local/lib/python3.4/site-packages/gunicorn/arbiter.py", line 557, in spawn_worker 
    worker.init_process() 
    File "/usr/local/lib/python3.4/site-packages/gunicorn/workers/base.py", line 126, in init_process 
    self.load_wsgi() 
    File "/usr/local/lib/python3.4/site-packages/gunicorn/workers/base.py", line 136, in load_wsgi 
    self.wsgi = self.app.wsgi() 
    File "/usr/local/lib/python3.4/site-packages/gunicorn/app/base.py", line 67, in wsgi 
    self.callable = self.load() 
    File "/usr/local/lib/python3.4/site-packages/gunicorn/app/wsgiapp.py", line 65, in load 
    return self.load_wsgiapp() 
    File "/usr/local/lib/python3.4/site-packages/gunicorn/app/wsgiapp.py", line 52, in load_wsgiapp 
    return util.import_app(self.app_uri) 
    File "/usr/local/lib/python3.4/site-packages/gunicorn/util.py", line 357, in import_app 
    __import__(module) 
ImportError: No module named 'django_project' 

モジュールが見つからないのはなぜですか?

答えて

0

それはあなたのDockerfileと完全なセットアップを見ることなく、100%確認するのは難しいが、私は問題がドッキングウィンドウ-compose.ymlのこのセクションだと思う:

volumes: 
    - ./web:/usr/src/app 

チュートリアルのレポでリンクされました同等のセクションにされています。python:3.5-onbuild画像を使用することにより、コードがaleady画像に焼かれているので、ボリュームとして追加する必要はありませんので、これはある

volumes: 
    - /usr/src/app 
    - /usr/src/app/static 

ホストボリュームのマウントとしてソースコードを追加したいと思うのは、あなたが行った変更が開発目的のために実行中のイメージにすぐに反映されるためです。

web: 
    restart: always 
    build: ./web 
    expose: 
    - "8000" 
    links: 
    - postgres:postgres 
    volumes: 
    - .:/usr/src/app 
    env_file: .env 
    command: /usr/local/bin/gunicorn django_project.wsgi:application -w 2 -b :8000 

volumes: 
    - .:/usr/src/app 

全体のWebセクションのためにあなたにこれを与えることになる。このような場合、私はあなたのような何かに問題のある部分を変更していることを達成することができるはずだと思いますコンテナ内のプロセスがルートとして実行されるため、コンテナ内で作成されるファイルのファイルアクセス権に関する問題が発生する可能性があります。それが問題になった場合は、それを解決するための文書化された方法(達成する必要があるものに依存する)があるか、ここに別の質問を投稿することができます。

関連する問題