35 lines
711 B
Docker
35 lines
711 B
Docker
# 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:v0.3.977 AS generate-stage
|
|
COPY --chown=65532:65532 --chmod=755 . /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"]
|