FROM python:3.11.2-slim # Установка системных зависимостей RUN apt-get update \ && apt-get install -y --no-install-recommends \ gcc \ libpq-dev \ libffi-dev \ libxml2-dev \ libxslt1-dev \ zlib1g-dev \ # Зависимости для Playwright/Chromium libnss3 \ libnspr4 \ libatk1.0-0 \ libatk-bridge2.0-0 \ libcups2 \ libdrm2 \ libdbus-1-3 \ libxkbcommon0 \ libxcomposite1 \ libxdamage1 \ libxfixes3 \ libxrandr2 \ libgbm1 \ libasound2 \ libpango-1.0-0 \ libcairo2 \ libatspi2.0-0 \ && rm -rf /var/lib/apt/lists/* # Создание рабочей директории WORKDIR /app # Копирование файлов зависимостей COPY requirements.txt . COPY requirements-dev.txt . # Установка Python зависимостей RUN pip install --no-cache-dir -r requirements.txt RUN pip install --no-cache-dir -r requirements-dev.txt # Копирование исходного кода COPY src/ ./src/ # Создание необходимых директорий RUN mkdir -p logs # PYTHONPATH для доступа к модулям ENV PYTHONPATH=/app/src # Создание пользователя для запуска приложения RUN groupadd -r appgroup && useradd -r -g appgroup appuser # Установка Playwright браузеров для appuser ENV PLAYWRIGHT_BROWSERS_PATH=/app/.playwright RUN playwright install chromium --with-deps || true RUN chown -R appuser:appgroup /app USER appuser # Команда по умолчанию будет передаваться из docker-compose