Files
octopus/docker/Dockerfile
Andrey Smakotin 9e1145b9ce 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>
2025-12-08 02:10:59 +03:00

57 lines
1.5 KiB
Docker
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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"]