From d913956e760d076ff7f72622871f3fd59d8a3a8e Mon Sep 17 00:00:00 2001 From: Xe Iaso Date: Sun, 20 Apr 2025 22:09:18 -0400 Subject: docker buildx bake Signed-off-by: Xe Iaso --- docker/patreon-saasproxy.Dockerfile | 23 +++++++++++++++++++ docker/xesite.Dockerfile | 44 +++++++++++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+) create mode 100644 docker/patreon-saasproxy.Dockerfile create mode 100644 docker/xesite.Dockerfile (limited to 'docker') diff --git a/docker/patreon-saasproxy.Dockerfile b/docker/patreon-saasproxy.Dockerfile new file mode 100644 index 0000000..f9fed4e --- /dev/null +++ b/docker/patreon-saasproxy.Dockerfile @@ -0,0 +1,23 @@ +ARG GO_VERSION=1.24 +ARG ALPINE_VERSION=edge +FROM --platform=${BUILDPLATFORM} golang:${GO_VERSION}-alpine AS build + +ARG TARGETOS +ARG TARGETARCH + +WORKDIR /app + +COPY go.mod go.sum ./ +RUN go mod download + +COPY . . +RUN --mount=type=cache,target=/root/.cache GOOS=${TARGETOS} GOARCH=${TARGETARCH} CGO_ENABLED=0 go build -gcflags "all=-N -l" -o /app/bin/patreon-saasproxy ./cmd/patreon-saasproxy + +FROM alpine:${ALPINE_VERSION} AS run +WORKDIR /app + +COPY --from=build /app/bin/patreon-saasproxy /app/bin/patreon-saasproxy + +CMD ["/app/bin/patreon-saasproxy"] + +LABEL org.opencontainers.image.source="https://github.com/Xe/site" diff --git a/docker/xesite.Dockerfile b/docker/xesite.Dockerfile new file mode 100644 index 0000000..8236751 --- /dev/null +++ b/docker/xesite.Dockerfile @@ -0,0 +1,44 @@ +ARG GO_VERSION=1.24 +ARG ALPINE_VERSION=edge +FROM --platform=${BUILDPLATFORM} golang:${GO_VERSION}-alpine AS build + +ARG TARGETOS +ARG TARGETARCH + +WORKDIR /app + +COPY go.mod go.sum ./ +RUN go mod download + +COPY . . +RUN --mount=type=cache,target=/root/.cache GOOS=${TARGETOS} GOARCH=${TARGETARCH} CGO_ENABLED=0 go build -gcflags "all=-N -l" -o /app/bin/xesite ./cmd/xesite + +FROM --platform=${BUILDPLATFORM} alpine:${ALPINE_VERSION} AS fonts + +WORKDIR /fonts +RUN apk add -U unzip ca-certificates curl \ + && curl -Lo iosevka.zip https://cdn.xeiaso.net/static/pkg/iosevka/ttf.zip \ + && unzip -d /fonts iosevka.zip + +FROM --platform=${BUILDPLATFORM} alpine:${ALPINE_VERSION} AS dhall-json + +RUN mkdir -p /app +WORKDIR /app +RUN apk add -U curl bzip2 ca-certificates \ + && curl -L -o dhall-linux.tar.bz2 https://github.com/dhall-lang/dhall-haskell/releases/download/1.42.0/dhall-json-1.7.12-x86_64-linux.tar.bz2 \ + && tar -xvjf dhall-linux.tar.bz2 \ + && mv bin/dhall-to-json . + +FROM alpine:${ALPINE_VERSION} AS run +WORKDIR /app + +RUN apk add -U ca-certificates deno typst mailcap +ENV TYPST_FONT_PATHS=/app/fonts + +COPY --from=build /app/bin/xesite /app/bin/xesite +COPY --from=fonts /fonts /app/fonts +COPY --from=dhall-json /app/dhall-to-json /usr/local/bin/dhall-to-json + +CMD ["/app/bin/xesite"] + +LABEL org.opencontainers.image.source="https://github.com/Xe/site" -- cgit v1.2.3