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