# Создано: 2026-03-11
# Base builder image для Go 1.23 serverless функций.
# Это BUILDER-образ (не runtime): содержит Go компилятор + server.go.
# server.go — HTTP-wrapper + job-runner, компилируется ВМЕСТЕ с кодом пользователя.
#
# kaniko делает multi-stage build:
#   Stage 1: golang:1.23-alpine → COPY server.go + handler/ → go build → /server
#   Stage 2: FROM alpine → COPY /server → минимальный финальный образ.
#
# Почему builder-образ, а не runtime: Go требует статической компиляции — нельзя
# "подключить" пользовательский код динамически как в Python/Node.

FROM golang:1.23-alpine AS builder

WORKDIR /app

# server.go — точка входа (main package), вызывает Handler() из пользовательского кода.
COPY server.go /app/server.go

# Код пользователя kaniko копирует в /app/handler/
COPY handler/ /app/handler/

# Статическая сборка (без libc) — работает в alpine-контейнере
RUN CGO_ENABLED=0 go build -o /server /app/server.go

# Финальный минимальный образ
FROM alpine:3.20

COPY --from=builder /server /server

EXPOSE 8080

CMD ["/server"]
