# Этап сборки FROM docker.io/library/golang:1.22.2 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 . # Копируем .env файл (если он есть в проекте) COPY .env .env # Порт, который будет слушать приложение EXPOSE 8080 # Команда запуска CMD ["./app"]