Spaces:
Build error
Build error
File size: 2,193 Bytes
d8298c2 8b0e16d 1c09a18 d8298c2 1c09a18 d8298c2 1c09a18 d8298c2 8b0e16d d8298c2 27fea4e d8298c2 27fea4e d8298c2 8b0e16d d8298c2 8b0e16d d8298c2 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# 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"] |