# Создано: 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"]