# ЭТАП 1: Сборка FROM golang:1.21-alpine AS builder # Устанавливаем git, так как go mod tidy может его потребовать RUN apk add --no-cache git WORKDIR /build # Копируем только go.mod (если go.sum нет, это не страшно) COPY go.mod ./ # Если go.sum существует локально, он подхватится, если нет — пропустится COPY go.sum* ./ # Копируем исходный код COPY . . # ВЫПОЛНЯЕМ TIDY ПЕРЕД СБОРКОЙ # Это создаст/обновит go.sum внутри контейнера RUN go mod tidy # Собираем бинарник 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 . EXPOSE 8080 CMD ["./app-binary"]