Я разработал версию django 5.1.6 и использовал ее в производстве в течение нескольких месяцев. В производстве я запускаю, как и при разработке, приложение с
Код: Выделить всё
python manage.py runserver
Код: Выделить всё
WARNING: This is a development server. Do not use it in a production setting. Use a production WSGI or ASGI server instead.
For more information on production servers see: https://docs.djangoproject.com/en/5.2/howto/deployment/
Код: Выделить всё
# Stage 1: Base build stage
FROM python:3.13-slim AS builder
# Create the app directory
RUN mkdir /app
# Set the working directory
WORKDIR /app
# Set environment variables to optimize Python
ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1
# Upgrade pip and install dependencies
RUN pip install --upgrade pip
# Copy the requirements file first (better caching)
COPY requirements.txt /app/
# Install Python dependencies
RUN pip install --no-cache-dir -r requirements.txt
# Stage 2: Production stage
FROM python:3.13-slim
RUN useradd -m -r appuser && \
mkdir /app && \
chown -R appuser /app
# Copy the Python dependencies from the builder stage
COPY --from=builder /usr/local/lib/python3.13/site-packages/ /usr/local/lib/python3.13/site-packages/
COPY --from=builder /usr/local/bin/ /usr/local/bin/
# Set the working directory
WORKDIR /app
# Copy application code
COPY --chown=appuser:appuser . .
# Set environment variables to optimize Python
ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1
# Switch to non-root user
USER appuser
# Expose the application port
EXPOSE 8000
# Start the application using Gunicorn
CMD ["gunicorn", "--bind", "0.0.0.0:8000", "--workers", "3", "localmovies.wsgi:application"]
Код: Выделить всё
[CRITICAL] WORKER TIMEOUT (pid:8)
Затем я меняю Dockerfile, чтобы запустить сервер разработки, и никаких проблем не возникает.
Я также пробую uWSGI, но безуспешно. Я вижу в журнале докера сообщение
Код: Выделить всё
[uWSGI] getting INI configuration from /uwsgi/uwsgi.ini
Теперь мои вопросы:
Какое решение рекомендуется для использования приложения django в докере,
сервер разработки
gunicorn
uWSGI
...
Есть у кого-нибудь идея, почему у Gunicorn есть тайм-ауты, а сервер разработки нет?
Может ли кто-нибудь подсказать, как использовать uWSGI с django и docker?
Подробнее здесь: https://stackoverflow.com/questions/798 ... -solutions
Мобильная версия