2017-10-29 17 views
0

私はthis tutorialを経由しています。スタックを正常に稼働させています。初心者のドッカーのドッカーの作成

ホストのコード(webサービス)を変更すると、がブラウザでページをリロードすると自動的に変更されます。なぜそれがそれをやっているのか分かりません。

web: 
    restart: always 
    build: ./web 
    expose: 
    - "8000" 
    links: 
    - postgres:postgres 
    - redis:redis 
    volumes: 
    - ./web:/usr/src/app 
    - ./web/static:/usr/src/app/static 
    env_file: .env 
    environment: 
    DEBUG: 'true' 
    command: /usr/local/bin/gunicorn docker_django.wsgi:application -w 2 -b :8000 

nginx: 
    restart: always 
    build: ./nginx/ 
    ports: 
    - "80:80" 
    volumes: 
    - /www/static 
    volumes_from: 
    - web 
    links: 
    - web:web 

postgres: 
    restart: always 
    image: postgres:latest 
    ports: 
    - "5432:5432" 
    volumes: 
    - pgdata:/var/lib/postgresql/data/ 

redis: 
    restart: always 
    image: redis:latest 
    ports: 
    - "6379:6379" 
    volumes: 
    - redisdata:/data 

私はgunicornが実際に熱いリロードを行うには--reloadフラグを必要と信じているので、私は、これはgunicornリロードをしていたとは思いませんでした。ここに私のdocker-compose.ymlファイルです。

答えて

1

この行は、ホスト上の場所をWebコンテナ内の場所にマップすることを意味します。

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

したがって、.webディレクトリのコードを変更すると、そのコードはコンテナ内で更新されます。それが起こらないようにするには、そのコンテナのDockerfileにそのディレクトリを指定してコンテナを構築するときに、それらのディレクトリをコピーする必要があります。

+0

ありがとうございます。なぜgunicornは '--reload'フラグを持っていますか?また、 'waitress'や組み込みのdjango' runserver 'のようなサーバを使用している場合でも、コードが実際に反映されるようにリロードする必要があります。 – qarthandso

+0

これは、あなたの環境変数 'DEBUG:true'があるので起こると思います。 – zachdb86

+0

これはDjango内の 'settings.py'に影響するかもしれませんが、なぜファイルを提供している' gunicorn'に影響するでしょうか。 – qarthandso

関連する問題