opex792 commited on
Commit
111fc06
·
verified ·
1 Parent(s): 3d03831

Create Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +47 -0
Dockerfile ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Используем официальный образ Python 3.10
2
+ FROM python:3.10-slim
3
+
4
+ # Устанавливаем рабочую директорию
5
+ WORKDIR /code
6
+
7
+ # Отключаем интерактивные запросы при установке пакетов
8
+ ENV DEBIAN_FRONTEND=noninteractive
9
+
10
+ # 1. Установка системных зависимостей
11
+ # - ffmpeg: требуется для ab-av1
12
+ # - curl, build-essential, pkg-config, libssl-dev, git: требуются для установки Rust и сборки пакетов
13
+ RUN apt-get update && apt-get install -y \
14
+ ffmpeg \
15
+ curl \
16
+ build-essential \
17
+ pkg-config \
18
+ libssl-dev \
19
+ git \
20
+ && apt-get clean \
21
+ && rm -rf /var/lib/apt/lists/*
22
+
23
+ # 2. Установка Rust и Cargo
24
+ # Устанавливаем rustup (менеджер версий Rust) и добавляем cargo в PATH
25
+ ENV PATH="/root/.cargo/bin:${PATH}"
26
+ RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
27
+
28
+ # 3. Установка ab-av1 с помощью Cargo
29
+ # Используем --git для установки последней версии из репозитория
30
+ # Это может занять несколько минут во время сборки образа
31
+ RUN cargo install --git https://github.com/alexheretic/ab-av1
32
+
33
+ # 4. Настройка Python-окружения
34
+ # Копируем файл с зависимостями и устанавливаем их
35
+ COPY ./requirements.txt /code/requirements.txt
36
+ RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt
37
+
38
+ # Копируем код нашего приложения
39
+ COPY ./app /code/app
40
+
41
+ # Открываем порт 7860, на котором будет работать API
42
+ EXPOSE 7860
43
+
44
+ # 5. Запуск приложения
45
+ # Запускаем uvicorn сервер, который будет обслуживать наше FastAPI приложение
46
+ # --host 0.0.0.0 делает его доступным извне контейнера
47
+ CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "7860"]