# syntax=docker/dockerfile:1 # Stage 1: Build frontend FROM oven/bun:1-alpine AS frontend-builder WORKDIR /app/frontend COPY frontend/package.json frontend/bun.lock ./ RUN bun install --frozen-lockfile COPY frontend/ ./ RUN bun run build # Stage 2: Build Go binary FROM golang:1.26-alpine AS builder WORKDIR /app COPY go.mod go.sum ./ RUN go mod download COPY . . RUN CGO_ENABLED=0 go build -o server ./cmd/diunwebhook/main.go # Stage 3: Runtime FROM alpine:3.18 WORKDIR /app COPY --from=builder /app/server ./server COPY --from=frontend-builder /app/frontend/dist ./frontend/dist EXPOSE 8080 CMD ["./server"]