gpt4 book ai didi

python - 在 Docker 上自动重新加载 Django 服务器

转载 作者:行者123 更新时间:2023-12-02 18:01:36 25 4
gpt4 key购买 nike

我正在学习使用Docker,从昨天开始就遇到了问题(在我求助之前,我开始调查但我无法解决问题),我的问题是我的本地机器上有一个Django项目,我也有与Docker相同的项目,但是当我更改本地项目时,它没有反射(reflect)在项目运行的容器中。如果您能帮我解决这个问题,我将不胜感激。谢谢你。

文件

FROM python:3.7-alpine

ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1

RUN mkdir /code
WORKDIR /code

RUN apk update \
&& apk add --virtual build-deps gcc python3-dev musl-dev \
&& apk add postgresql-dev \
&& pip install psycopg2 \
&& apk del build-deps

RUN pip install --upgrade pip
RUN pip install pipenv

COPY ./Pipfile /code
RUN pipenv install --skip-lock --system --dev

COPY ./entrypoint.sh /code

COPY . /code

ENTRYPOINT [ "/code/entrypoint.sh" ]

docker-compose.yml
# version de docker-compose con la que trabajaremos
version: '3'

# definiendo los servicios que correran en nuestro contenedor
services:
web:
restart: always
build: .
command: gunicorn app.wsgi:application --bind 0.0.0.0:8000 #python manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
- static_volume:/code/staticfiles
- media_volume:/code/mediafiles
expose:
- 8000
environment:
- SQL_ENGINE=django.db.backends.postgresql
- SQL_DATABASE=postgres
- SQL_USER=postgres
- SQL_PASSWORD=postgres
- SQL_HOST=db
- SQL_PORT=5432
- DATABASE=postgres
depends_on:
- db
env_file: .env
db:
restart: always
image: postgres:10.5-alpine
volumes:
- ./postgres-data:/var/lib/postgresql/data
nginx:
restart: always
build: ./nginx
volumes:
- static_volume:/code/staticfiles
- media_volume:/code/mediafiles
ports:
- 1337:80
depends_on:
- web

volumes:
static_volume:
media_volume:

在这里有点疑问,将环境变量存储在 Dockerfile 或 docker-compose 中是否是一个好习惯?,我使用 .env 但我在很多地方看到他们将变量存储在 docker-compose 中,如代码所示以上

我希望你能帮助我,关于我的项目的任何建议都非常受欢迎,正如我评论的那样,我是 Docker 的新手,但我真的很喜欢它,我想了解更多。

最佳答案

人们通常如何处理这个问题是有一个单独的 docker-compose开发和生产环境的配置,例如local.ymlproduction.yml .这样你就可以使用 runserver在开发时(你可能会发现更合适,因为你会得到很多调试信息)和 gunicorn在生产上。

我建议查看 https://github.com/pydanny/cookiecutter-django项目,其中集成了许多 Django 良好实践以及良好的开箱即用 Docker 配置。您可以使用 cookiecutter 创建一个测试项目。然后检查他们如何进行 Docker 设置,包括环境变量。

关于python - 在 Docker 上自动重新加载 Django 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54414686/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com