应用更改在django/docker文件中
应用更改在django/docker文件中
我正在使用django
和docker
进行开发,当我更改项目中的文件时遇到了问题。我的问题如下:
我更改了django
项目中任何文件的内容(模板,视图,urls),但它在我的当前正在运行的应用程序中没有更新。每次想要查看我的更改时,我都需要重新启动服务器(我正在使用nginx
),执行docker-compose up
。是否有一个包或变更,我应该安装/执行使其能够在运行时接受更改?
这是我的Dockerfile
:
FROM python:3.6 ENV PYTHONUNBUFFERED 1 RUN mkdir -p /opt/services/djangoapp/src COPY Pipfile Pipfile.lock /opt/services/djangoapp/src/ WORKDIR /opt/services/djangoapp/src RUN pip install pipenv && pipenv install --system RUN pip install pipenv && pipenv install --system RUN pip install django-livereload COPY . /opt/services/djangoapp/src RUN cd hello && python manage.py collectstatic --no-input EXPOSE 8000 CMD ["gunicorn", "-c", "config/gunicorn/conf.py", "--bind", ":8000", "--chdir", "hello", "hello.wsgi:application"]
请让我知道我可能提供的任何其他信息,以便更好地了解问题(如果不够清楚)。
version: '3' services: # database containers, one for each db database1: image: postgres:10 volumes: - database1_volume:/var/lib/postgresql/data env_file: - config/db/database1_env networks: - database1_network # web container, with django + gunicorn djangoapp: build: . environment: - DJANGO_SETTINGS_MODULE volumes: - .:/opt/services/djangoapp/src - static:/opt/services/djangoapp/static - media:/opt/services/djangoapp/media - .:/code networks: - database1_network - nginx_network depends_on: - database1 # reverse proxy container (nginx) nginx: image: nginx:1.13 ports: - 8000:80 volumes: - ./config/nginx/conf.d:/etc/nginx/conf.d - static:/opt/services/djangoapp/static - media:/opt/services/djangoapp/media networks: - nginx_network depends_on: - djangoapp networks: database1_network: driver: bridge database2_network: driver: bridge nginx_network: driver: bridge volumes: database1_volume: static: media:
admin 更改状态以发布 2023年5月23日
这很简单。现在会发生什么:
- 你有 Dockerfile,并且将当前文件夹(在构建镜像时)复制到容器中。因此,在运行容器时,如果在创建容器后在主机(当前工作文件夹)上更改了某些内容,则不会与主机同步。
- 如果想要将主机与容器同步,就必须将其作为卷挂载,可以在单个容器中使用
-v
,也可以在 Docker Compose 中使用volumes
。
docker run -v /host/directory:/container/directory
docker run -v ./:/opt/services/djangoapp/src
或者如果有多个容器,则可以使用 Docker Compose。
version: '3' services: web-service: build: . # path to Dockerfile image: your-image volumes: - /host/directory:/container/directory #- ./:/opt/services/djangoapp/src