25 lines
552 B
Docker
25 lines
552 B
Docker
# Multi-stage Dockerfile for Go (PocketBase) project
|
|
# --- Build Stage ---
|
|
FROM golang:1.21-alpine AS builder
|
|
WORKDIR /app
|
|
COPY go.mod .
|
|
COPY go.sum .
|
|
RUN go mod download
|
|
COPY . .
|
|
RUN CGO_ENABLED=0 GOOS=linux go build -o server main.go
|
|
|
|
# --- Development Stage ---
|
|
FROM golang:1.21-alpine AS dev
|
|
WORKDIR /app
|
|
COPY --from=builder /app /app
|
|
EXPOSE 8080
|
|
CMD ["go", "run", "main.go"]
|
|
|
|
# --- Production Stage ---
|
|
FROM alpine:3.18 AS prod
|
|
WORKDIR /app
|
|
COPY --from=builder /app/server /app/server
|
|
COPY pb_public /app/pb_public
|
|
EXPOSE 8080
|
|
CMD ["/app/server"]
|