# Local development Dockerfile
# Build from the repository root context

FROM golang:1.24-alpine AS builder

WORKDIR /workspace

# Copy the entire api directory for the dependency
COPY api/tidbcloud/dataplane-manager ./api/tidbcloud/dataplane-manager

# Copy mock-dpm source
COPY hack/mock-dpm ./hack/mock-dpm

WORKDIR /workspace/hack/mock-dpm

# Download dependencies
ENV GOPROXY=https://goproxy.cn,direct
RUN go mod download

# Build the binary
RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o /mock-dpm .

# Runtime stage
FROM alpine:3.19

RUN apk --no-cache add ca-certificates wget

WORKDIR /

COPY --from=builder /mock-dpm /mock-dpm

# Expose ports (gRPC: 10000, Admin HTTP: 8080)
EXPOSE 10000 8080

ENTRYPOINT ["/mock-dpm"]
