Kgshop commited on
Commit
d8298c2
·
verified ·
1 Parent(s): e3183f1

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +33 -11
Dockerfile CHANGED
@@ -1,19 +1,41 @@
1
- # Базовый образ Python
2
  FROM python:3.9-slim
3
 
4
- # Установка зависимостей
5
- COPY requirements.txt requirements.txt
6
- RUN pip install -r requirements.txt
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7
 
8
- # Создание рабочей директории и настройка прав доступа
9
  WORKDIR /app
10
 
11
- # Убедитесь, что контейнер имеет права на запись в текущую директорию
12
- RUN chmod -R 777 /app
 
13
 
14
- # Копируем приложение
15
- COPY app.py /app/app.py
 
16
 
17
- # Запускаем приложение
 
 
 
 
18
  EXPOSE 7860
19
- CMD ["python", "/app/app.py"]
 
 
 
1
+ # 1. Используем базовый образ Python
2
  FROM python:3.9-slim
3
 
4
+ # 2. Установка системных зависимостей и Google Chrome
5
+ RUN apt-get update && apt-get install -y \
6
+ wget \
7
+ gnupg \
8
+ # Добавляем репозиторий Google Chrome
9
+ && wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - \
10
+ && echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list \
11
+ # Устанавливаем Chrome и необходимые библиотеки
12
+ && apt-get update \
13
+ && apt-get install -y \
14
+ google-chrome-stable \
15
+ libglib2.0-0 \
16
+ libnss3 \
17
+ libgconf-2-4 \
18
+ libfontconfig1 \
19
+ # Очищаем кэш apt, чтобы уменьшить размер образа
20
+ && rm -rf /var/lib/apt/lists/*
21
 
22
+ # 3. Устанавливаем рабочую директорию
23
  WORKDIR /app
24
 
25
+ # 4. Копируем файл зависимостей и устанавливаем их (оптимизация кэширования Docker)
26
+ COPY requirements.txt .
27
+ RUN pip install --no-cache-dir -r requirements.txt
28
 
29
+ # 5. Создаем пользователя без прав root для безопасности
30
+ RUN useradd -m appuser
31
+ USER appuser
32
 
33
+ # 6. Копируем остальную часть приложения
34
+ # --chown=appuser:appuser гарантирует, что у нового пользователя есть права на эти файлы
35
+ COPY --chown=appuser:appuser . .
36
+
37
+ # 7. Открываем порт, на котором будет работать приложение
38
  EXPOSE 7860
39
+
40
+ # 8. Команда для запуска приложения
41
+ CMD ["python", "app.py"]