FROM python:3.11.8-slim AS build

# Устанавливаем рабочую директорию
WORKDIR /app

# Копируем файл с зависимостями в контейнер
COPY ./app/requirements.txt .

# Устанавливаем необходимые зависимости
RUN pip install -r requirements.txt

# Устанавливаем необходимые утилиты
RUN apt-get update && \
    apt-get install -y wget unzip xz-utils git clang cmake ninja-build pkg-config curl libgtk-3-dev

# Устанавливаем Flutter SDK
RUN wget https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_3.24.0-stable.tar.xz && \
    tar xf flutter_linux_3.24.0-stable.tar.xz && \
    mv flutter /usr/local/flutter && \
    git config --global --add safe.directory /usr/local/flutter && \
    /usr/local/flutter/bin/flutter doctor

# Обновляем PATH для Flutter
ENV PATH="/usr/local/flutter/bin:${PATH}"

# Копируем файл с кодом в контейнер
COPY ./app/ .

# Выполняем сборку проекта
RUN flet build web

# Используем официальный образ Nginx для развертывания
FROM nginx:latest AS final

# Копируем собранные файлы в директорию Nginx
COPY --from=build /app/build/web /usr/share/nginx/html

# Копируем конфигурационный файл Nginx (если требуется)
COPY ./app/nginx.conf /etc/nginx/nginx.conf