33 lines
583 B
Docker
33 lines
583 B
Docker
# Build stage
|
|
FROM golang:1.23-alpine AS builder
|
|
|
|
WORKDIR /app
|
|
|
|
# Copy go workspace files
|
|
COPY go.work go.work.sum* ./
|
|
COPY pkg/go.mod pkg/go.sum* ./pkg/
|
|
COPY services/api/go.mod services/api/go.sum* ./services/api/
|
|
|
|
# Download dependencies
|
|
RUN cd services/api && go mod download
|
|
|
|
# Copy source
|
|
COPY pkg/ ./pkg/
|
|
COPY services/api/ ./services/api/
|
|
|
|
# Build
|
|
RUN cd services/api && CGO_ENABLED=0 go build -o /api ./cmd/server
|
|
|
|
# Production stage
|
|
FROM alpine:3.19
|
|
|
|
RUN apk add --no-cache ca-certificates tzdata
|
|
|
|
WORKDIR /
|
|
|
|
COPY --from=builder /api /api
|
|
|
|
EXPOSE 8001
|
|
|
|
ENTRYPOINT ["/api"]
|