Spaces:
Build error
Build error
| # 1. Используем базовый образ Python | |
| FROM python:3.9-slim | |
| # 2. Установка системных зависимостей и Google Chrome (СОВРЕМЕННЫЙ МЕТОД) | |
| RUN apt-get update && apt-get install -y \ | |
| wget \ | |
| gnupg \ | |
| # Создаем директорию для ключей | |
| && mkdir -p /etc/apt/keyrings \ | |
| # Скачиваем ключ Google, конвертируем его и сохраняем в правильное место | |
| && wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | gpg --dearmor -o /etc/apt/keyrings/google-chrome.gpg \ | |
| # Добавляем репозиторий Google Chrome, указывая на скачанный ключ | |
| && echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/google-chrome.gpg] http://dl.google.com/linux/chrome/deb/ stable main" > /etc/apt/sources.list.d/google-chrome.list \ | |
| # Обновляем список пакетов и устанавливаем Chrome + зависимости | |
| && apt-get update \ | |
| && apt-get install -y \ | |
| google-chrome-stable \ | |
| libglib2.0-0 \ | |
| libnss3 \ | |
| libgconf-2-4 \ | |
| libfontconfig1 \ | |
| # Очищаем кэш apt для уменьшения размера образа | |
| && rm -rf /var/lib/apt/lists/* | |
| # 3. Устанавливаем рабочую директорию | |
| WORKDIR /app | |
| # 4. Копируем файл зависимостей и устанавливаем их (оптимизация кэширования Docker) | |
| COPY requirements.txt . | |
| RUN pip install --no-cache-dir -r requirements.txt | |
| # 5. Создаем пользователя без прав root для безопасности | |
| RUN useradd -m appuser | |
| USER appuser | |
| # 6. Копируем остальную часть приложения | |
| # --chown=appuser:appuser гарантирует, что у нового пользователя есть права на эти файлы | |
| COPY --chown=appuser:appuser . . | |
| # 7. Открываем порт, на котором будет работать приложение | |
| EXPOSE 7860 | |
| # 8. Команда для запуска приложения | |
| CMD ["python", "app.py"] |