# --- ЭТАП 1: Сборка ---
FROM golang:1.25-alpine AS builder

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

# Копируем файлы зависимостей
# Это делается отдельно, чтобы Docker кэшировал слои с модулями
COPY go.mod go.sum ./
RUN go mod download

# Копируем исходный код
COPY . .

# Собираем бинарный файл
# CGO_ENABLED=0 нужен для статической линковки (чтобы работало в пустом образе)
# GOOS=linux гарантирует сборку под Linux
RUN CGO_ENABLED=0 GOOS=linux go build -o /app/server main.go

# --- ЭТАП 2: Запуск ---
FROM alpine:latest

# Устанавливаем часовой пояс и корневые сертификаты (важно для HTTPS запросов)
RUN apk --no-cache add ca-certificates tzdata

WORKDIR /app

# Копируем только скомпилированный файл из предыдущего этапа
COPY --from=builder /app/server .
COPY --from=builder /app/bin/ipatool /bin/ipatool

# Открываем порт (тот же, что в коде Huma)
EXPOSE 8888

# Запускаем приложение
CMD ["./server"]