# ЭТАП 1: Сборка FROM golang:1.21-alpine AS builder # Устанавливаем рабочую директорию WORKDIR /build # Копируем только go.mod (если go.sum нет, это не страшно) COPY go.mod ./ # Если go.sum существует локально, он подхватится, если нет — пропустится COPY go.sum* ./ # Копируем исходный код COPY . . # ВЫПОЛНЯЕМ TIDY ПЕРЕД СБОРКОЙ # Это создаст/обновит go.sum внутри контейнера RUN go mod tidy # Собираем статически скомпилированный бинарный файл для Linux RUN CGO_ENABLED=0 GOOS=linux go build -o /app-binary main.go # ЭТАП 2: Финальный образ FROM alpine:latest RUN apk --no-cache add ca-certificates tzdata WORKDIR /root/ # Копируем бинарник COPY --from=builder /app-binary . # ВАЖНО: копируем шаблоны COPY --from=builder /build/templates ./templates EXPOSE 8080 CMD ["./app-binary"]