FROM golang:1.25-alpine AS builder # Устанавливаем FFmpeg и зависимости RUN apk add --no-cache \ ffmpeg \ build-base \ git WORKDIR /app # Копируем зависимости COPY go.mod go.sum ./ RUN go mod download # Копируем исходный код COPY . . # Генерируем gRPC код RUN go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.28 RUN go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.2 RUN protoc --go_out=./gen --go_opt=paths=source_relative \ --go-grpc_out=./gen --go-grpc_opt=paths=source_relative \ proto/clip.proto # Собираем приложение RUN go build -o clip-service ./cmd/server FROM alpine:3.18 # Устанавливаем FFmpeg и зависимости времени выполнения RUN apk add --no-cache \ ffmpeg \ ca-certificates WORKDIR /app # Копируем бинарник из builder stage COPY --from=builder /app/clip-service . EXPOSE 50054 CMD ["./clip-service"]