# Этап сборки FROM docker.io/library/golang:latest AS builder # Рабочая директория WORKDIR /build # Копируем файлы зависимостей COPY go.mod go.sum ./ RUN go mod tidy RUN go mod download # Копируем весь код COPY . . RUN ls # Собираем приложение (статически линкуем для Alpine) RUN CGO_ENABLED=0 GOOS=linux go build -o /app ./cmd/api # Этап запуска FROM docker.io/library/alpine:latest # Рабочая директория WORKDIR /app # Копируем бинарник из этапа сборки COPY --from=builder /app . # Порт, который будет слушать приложение EXPOSE 8080 # Команда запуска CMD ["./app"]