# syntax=docker/dockerfile:1 FROM --platform=$BUILDPLATFORM golang:alpine AS base ARG TARGETOS ARG TARGETARCH ENV CGO_ENABLED=0 \ GOOS=$TARGETOS \ GOARCH=$TARGETARCH FROM base AS fetch-stage WORKDIR /app COPY go.mod go.sum /app/ RUN go mod download && go mod verify FROM ghcr.io/a-h/templ:latest AS generate-stage COPY --chown=65532:65532 . /app WORKDIR /app RUN ["templ", "generate"] FROM base AS build COPY --from=generate-stage /app /app WORKDIR /app RUN go build -o server . FROM alpine:3.22 RUN apk add --no-cache tzdata typst WORKDIR /app COPY --from=build /app/server /app/server COPY migrations /app/migrations COPY doc /doc COPY /static /app/static ENTRYPOINT ["./server"]