25 lines
484 B
Docker
25 lines
484 B
Docker
# syntax=docker/dockerfile:1
|
|
|
|
# ---- build stage ----
|
|
FROM golang:1.26-alpine AS build
|
|
|
|
WORKDIR /src
|
|
|
|
# Cache module downloads before copying source (layer caching).
|
|
COPY go.mod go.sum ./
|
|
RUN go mod download
|
|
|
|
COPY . ./
|
|
|
|
# Build a fully static binary (CGO disabled, no libc dependency).
|
|
RUN CGO_ENABLED=0 GOOS=linux go build -ldflags="-s -w" -o /bin/hatch ./cmd/hatch
|
|
|
|
# ---- run stage ----
|
|
FROM scratch
|
|
|
|
COPY --from=build /bin/hatch /bin/hatch
|
|
|
|
EXPOSE 8080
|
|
|
|
ENTRYPOINT ["/bin/hatch"]
|