初级 Docker docker-撰写
Beginner Docker docker-compose
我正在经历 this tutorial 并且我已经成功地获得了筹码并且 运行。
困扰我的是,当我在我的主机上更改我的代码(在 web
服务中)时,它 确实 在我重新加载页面时自动进行更改在浏览器中。我不明白为什么要这样做。这是我的 docker-compose.yml
文件:
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
进行重新加载,因为我相信 gunicorn
需要 --reload
标志才能真正进行热重新加载。
此行表示您正在将主机上的位置映射到 Web 容器中的位置。
volumes:
- ./web:/usr/src/app
- ./web/static:/usr/src/app/static
因此,无论何时更改 .web 目录中的代码,它都会在容器内更新。如果您不希望这种情况发生,那么您需要在构建容器时复制这些目录,方法是在该容器的 Dockerfile 中指定这些目录。
我正在经历 this tutorial 并且我已经成功地获得了筹码并且 运行。
困扰我的是,当我在我的主机上更改我的代码(在 web
服务中)时,它 确实 在我重新加载页面时自动进行更改在浏览器中。我不明白为什么要这样做。这是我的 docker-compose.yml
文件:
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
进行重新加载,因为我相信 gunicorn
需要 --reload
标志才能真正进行热重新加载。
此行表示您正在将主机上的位置映射到 Web 容器中的位置。
volumes:
- ./web:/usr/src/app
- ./web/static:/usr/src/app/static
因此,无论何时更改 .web 目录中的代码,它都会在容器内更新。如果您不希望这种情况发生,那么您需要在构建容器时复制这些目录,方法是在该容器的 Dockerfile 中指定这些目录。