The code and data behind xeiaso.net
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

docker: make xesite use Ubuntu in prod

Signed-off-by: Xe Iaso <me@xeiaso.net>

+58 -17
+2 -1
.github/workflows/earthly.yml
··· 71 71 - 'pb/**/*' 72 72 - 'go.mod' 73 73 - 'go.sum' 74 - - 'Earthfile' 74 + - 'docker/*' 75 + - "docker-bake.hcl" 75 76 - 'manifest/**/*.yaml' 76 77 - uses: azure/setup-kubectl@v4 77 78 if: steps.changes.outputs.src == 'true'
+1 -1
Earthfile
··· 3 3 WORKDIR /app 4 4 5 5 deps: 6 - FROM golang:1.23-alpine 6 + FROM golang:1.24-alpine 7 7 WORKDIR /app 8 8 9 9 COPY go.mod go.sum ./
+14 -8
docker-bake.hcl
··· 1 - variable "ALPINE_VERSION" { 2 - default = "edge" 3 - } 4 - 5 - variable "GO_VERSION" { 6 - default = "1.24" 7 - } 1 + variable "ALPINE_VERSION" { default = "edge" } 2 + variable "DENO_VERSION" { default = "2.2.11" } 3 + variable "DHALL_VERSION" { default = "1.42.2" } 4 + variable "DHALL_JSON_VERSION" { default = "1.7.12" } 5 + variable "GO_VERSION" { default = "1.24" } 6 + variable "UBUNTU_VERSION" { default = "24.04" } 8 7 9 8 group "default" { 10 9 targets = [ "patreon-saasproxy", "xesite" ] ··· 27 26 target "xesite" { 28 27 args = { 29 28 ALPINE_VERSION = null 29 + DENO_VERSION = null 30 + DHALL_VERSION = null 31 + DHALL_JSON_VERSION = null 30 32 GO_VERSION = null 33 + UBUNTU_VERSION = "24.04" 31 34 } 32 35 context = "." 33 36 dockerfile = "./docker/xesite.Dockerfile" 34 - platforms = [ "linux/amd64", "linux/arm64" ] 37 + platforms = [ 38 + "linux/amd64" 39 + #"linux/arm64", 40 + ] 35 41 pull = true 36 42 tags = [ 37 43 "registry.int.xeserv.us/xe/site/bin:main"
+41 -7
docker/xesite.Dockerfile
··· 1 - ARG GO_VERSION=1.24 2 1 ARG ALPINE_VERSION=edge 3 - FROM --platform=${BUILDPLATFORM} golang:${GO_VERSION}-alpine AS build 2 + ARG GO_VERSION=1.24 3 + ARG UBUNTU_VERSION=24.04 4 + 5 + FROM --platform=${BUILDPLATFORM} golang:${GO_VERSION} AS build 4 6 5 7 ARG TARGETOS 6 8 ARG TARGETARCH ··· 13 15 COPY . . 14 16 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 15 17 16 - FROM --platform=${BUILDPLATFORM} alpine:${ALPINE_VERSION} AS fonts 18 + # 19 + # Images for various facets of xesite 20 + # 17 21 22 + # Iosevka for the resume 23 + FROM --platform=${BUILDPLATFORM} alpine:${ALPINE_VERSION} AS fonts 18 24 WORKDIR /fonts 19 25 RUN apk add -U unzip ca-certificates curl \ 20 26 && curl -Lo iosevka.zip https://cdn.xeiaso.net/static/pkg/iosevka/ttf.zip \ 21 27 && unzip -d /fonts iosevka.zip 22 28 29 + # dhall-json for configuration building 23 30 FROM --platform=${BUILDPLATFORM} alpine:${ALPINE_VERSION} AS dhall-json 24 - 31 + ARG DHALL_VERSION=1.42.2 32 + ARG DHALL_JSON_VERSION=1.7.12 25 33 RUN mkdir -p /app 26 34 WORKDIR /app 27 35 RUN apk add -U curl bzip2 ca-certificates \ 28 - && 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 \ 36 + && curl -L -o dhall-linux.tar.bz2 https://github.com/dhall-lang/dhall-haskell/releases/download/${DHALL_VERSION}/dhall-json-${DHALL_JSON_VERSION}-x86_64-linux.tar.bz2 \ 29 37 && tar -xvjf dhall-linux.tar.bz2 \ 30 38 && mv bin/dhall-to-json . 31 39 32 - FROM alpine:${ALPINE_VERSION} AS run 40 + # deno 41 + FROM alpine:${ALPINE_VERSION} AS deno 42 + ARG DENO_VERSION=2.2.11 43 + RUN mkdir -p /app 33 44 WORKDIR /app 45 + RUN apk add -U curl unzip ca-certificates \ 46 + && curl -sSLo deno.zip https://github.com/denoland/deno/releases/download/v${DENO_VERSION}/deno-$(uname -m)-unknown-linux-gnu.zip \ 47 + && unzip deno.zip 34 48 35 - RUN apk add -U ca-certificates deno typst mailcap 49 + # typst 50 + FROM alpine:${ALPINE_VERSION} AS typst 51 + ARG TYPST_VERSION=0.13.1 52 + RUN mkdir -p /app 53 + WORKDIR /app 54 + RUN set -x \ 55 + && apk add -U curl xz ca-certificates \ 56 + && curl -sSLo typst.tar.xz https://github.com/typst/typst/releases/download/v${TYPST_VERSION}/typst-$(uname -m)-unknown-linux-musl.tar.xz \ 57 + && tar xJf typst.tar.xz -C . \ 58 + && mv typst-$(uname -m)-unknown-linux-musl/typst . 59 + 60 + # runtime image 61 + FROM ubuntu:${UBUNTU_VERSION} AS run 62 + WORKDIR /app 63 + 64 + RUN apt-get update \ 65 + && apt-get -y install ca-certificates media-types 66 + 67 + #RUN apk add -U ca-certificates deno typst mailcap 36 68 ENV TYPST_FONT_PATHS=/app/fonts 37 69 38 70 COPY --from=build /app/bin/xesite /app/bin/xesite 39 71 COPY --from=fonts /fonts /app/fonts 40 72 COPY --from=dhall-json /app/dhall-to-json /usr/local/bin/dhall-to-json 73 + COPY --from=deno /app/deno /usr/local/bin/deno 74 + COPY --from=typst /app/typst /usr/local/bin/typst 41 75 42 76 CMD ["/app/bin/xesite"] 43 77