diff options
| author | Xe Iaso <me@xeiaso.net> | 2025-04-20 22:09:18 -0400 |
|---|---|---|
| committer | Xe Iaso <me@xeiaso.net> | 2025-04-20 22:09:18 -0400 |
| commit | d913956e760d076ff7f72622871f3fd59d8a3a8e (patch) | |
| tree | 053ce24e99e4ab1725f0c2e91718649030e605dc /docker | |
| parent | 30aaeb2598504912dc99445dfd1c1bd84efa676e (diff) | |
| download | xesite-d913956e760d076ff7f72622871f3fd59d8a3a8e.tar.xz xesite-d913956e760d076ff7f72622871f3fd59d8a3a8e.zip | |
docker buildx bake
Signed-off-by: Xe Iaso <me@xeiaso.net>
Diffstat (limited to 'docker')
| -rw-r--r-- | docker/patreon-saasproxy.Dockerfile | 23 | ||||
| -rw-r--r-- | docker/xesite.Dockerfile | 44 |
2 files changed, 67 insertions, 0 deletions
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" |
