Feature: Docker deployment configuration

- Добавлена поддержка docker-compose для развертывания
- STATIC_ROOT автоматически переключается в prod (/Volume1/DockerAppsData/npm/data/static/)
- Добавлены ALLOWED_HOSTS и CSRF_TRUSTED_ORIGINS из env переменных
- Улучшена обработка .env файла (проверка существования)
- Добавлен gunicorn в requirements.txt
- Добавлены .dockerignore, Dockerfile, docker-compose.yml
- Добавлены example файлы для .env.docker и entrypoint.sh
- Обновлен .gitignore для исключения файлов с секретами

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
2025-12-08 02:10:59 +03:00
parent 8d50613876
commit 9e1145b9ce
8 changed files with 406 additions and 4 deletions

56
docker/Dockerfile Normal file
View File

@@ -0,0 +1,56 @@
# Dockerfile для Django приложения с Celery
FROM python:3.11-slim
# Переменные окружения
ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1
ENV DJANGO_SETTINGS_MODULE=myproject.settings
# Установка системных зависимостей
RUN apt-get update && apt-get install -y --no-install-recommends \
# Для PostgreSQL
libpq-dev \
postgresql-client \
# Для Pillow и pillow-heif
libjpeg-dev \
libpng-dev \
libwebp-dev \
libheif-dev \
libde265-dev \
# Для сборки Python пакетов
gcc \
g++ \
# Утилиты
curl \
&& rm -rf /var/lib/apt/lists/*
# Рабочая директория
WORKDIR /app
# Копируем requirements и устанавливаем зависимости
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# Копируем проект
COPY myproject/ .
# Создаём директории для статики и медиа
RUN mkdir -p /app/staticfiles /app/media
# Копируем entrypoint скрипт
COPY docker/entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
# Создаём непривилегированного пользователя
RUN useradd -m -u 1000 appuser && \
chown -R appuser:appuser /app
USER appuser
# Порт приложения
EXPOSE 8000
# Точка входа
ENTRYPOINT ["/entrypoint.sh"]
# Команда по умолчанию (будет переопределена в docker-compose)
CMD ["web"]