我是开发Django
和Docker
的新手,在更改项目中的文件时遇到了一个问题。我的问题是:
我对Django
项目中的任何文件(模板、视图、URL)的内容进行了更改,但在我当前运行的应用程序中,这些文件没有更新。我总是希望看到我的更改,我需要重新启动服务器(我正在使用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:
这很简单。现在这里发生了什么
-v
或docker Compose中的volumes
。docker运行-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
问题内容: 可以在Django中更改上传文件的文件名吗?我搜索了,但找不到任何答案。 我的要求是,无论何时上传文件,其文件名都应以以下格式更改。 非常感谢你… 问题答案: 你如何上传文件?我以为。 FileField.upload_to的文档说,该字段 也可以是可调用的,例如函数,将被调用以获得上载路径,包括文件名。该可调用对象必须能够接受两个参数,并返回要传递给存储系统的Unix样式的路径(带有
问题内容: 我在heroku中有一个项目(myapp),但无法使静态文件正常工作。 我的样子是这样的: settings.py: 重新启动时heroku restart,将heroku logs显示以下内容: 但是当我这样做时,我heroku run ls -l myapp/看不到该staticfiles文件夹: 问题答案: 我找到了解决方案。这是我最初的: 我将这些行添加到原始文件的末尾: 现在
问题内容: 我正在通过创建带有一些nodejs指令的来玩docker。现在,每次更改dockerfile时,我都会通过在项目文件夹中运行来重新创建映像,但这每次都会创建一个新映像,并很快吞没我的ssd。 更改dockerfile时,是否有一种方法可以更新现有映像,或者每次更改文件时都被迫创建一个新映像? 抱歉,这是一个愚蠢的问题 问题答案: 只要没有指令,Docker构建支持缓存。如果您正在积极地
我必须将一个在几个容器中运行的应用程序交付给一个客户。我可以用 我的目标是交付一个只有docker-compose.yml和图像(app1.tar,app2.tar...)的zip文件夹需要运行集装箱。
问题内容: 为了运行ASP.NET Core应用程序,我生成了一个dockerfile,该文件构建了该应用程序,并将源代码复制到了容器中,该容器由Git使用Jenkins获取。因此,在我的工作区中,我在dockerfile中执行以下操作: 虽然Jenkins使用Git正确更新了主机上的文件,但Docker并未将其应用于我的映像。 我的基本构建脚本: 我尝试了各种不同的操作,例如和参数,并 在 构建
问题内容: 我应该在文件中添加Django迁移文件吗? 由于迁移冲突,我最近遇到了很多git问题,并且想知道是否应该将迁移文件标记为“忽略”。 如果是这样,我将如何添加我在应用程序中拥有的所有迁移并将它们添加到文件中? 问题答案: 引用Django迁移文档: 每个应用程序的迁移文件都位于该应用程序内的“迁移”目录中,并且被设计为提交至其代码库并作为其代码库的一部分进行分发。您应该在开发计算机上制作