aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXe Iaso <me@xeiaso.net>2025-01-21 20:04:41 -0500
committerXe Iaso <me@xeiaso.net>2025-01-21 20:04:44 -0500
commitfbb311eab22c5a4be9c92bb41655e77f8cd57936 (patch)
treeac4c88b685d29a53225f4cc3f0b2d1e921ff26aa
parent3dfec80571a844e3fd1ff83dd0af71d7dbcd3f67 (diff)
downloadx-fbb311eab22c5a4be9c92bb41655e77f8cd57936.tar.xz
x-fbb311eab22c5a4be9c92bb41655e77f8cd57936.zip
Earthfile: make anubis multi-arch
Closes #653 Signed-off-by: Xe Iaso <me@xeiaso.net>
-rw-r--r--Earthfile49
1 files changed, 38 insertions, 11 deletions
diff --git a/Earthfile b/Earthfile
index a1876ec..eb371e0 100644
--- a/Earthfile
+++ b/Earthfile
@@ -5,14 +5,17 @@ WORKDIR /app
runtime:
FROM debian:bookworm
+ WORKDIR /app
+
RUN apt-get update && apt-get install -y \
curl \
wget \
unzip \
ca-certificates \
- && rm -rf /var/lib/apt/lists/*
+ && rm -rf /var/lib/apt/lists/* \
+ && cp /etc/ssl/certs/ca-certificates.crt .
- WORKDIR /app
+ SAVE ARTIFACT ca-certificates.crt
deps:
FROM golang:1.23
@@ -23,6 +26,37 @@ deps:
SAVE ARTIFACT go.mod
+build:
+ FROM +deps
+ WORKDIR /app
+
+ ARG PROGRAM=anubis
+ ARG GOOS=linux
+ ARG GOARCH=amd64
+ ARG GOARM
+
+ RUN go mod download
+
+ COPY . .
+ RUN go build -o /app/bin/${PROGRAM} ./cmd/${PROGRAM}
+
+ SAVE ARTIFACT bin
+
+ship:
+ ARG PROGRAM=anubis
+ ARG GOARCH
+
+ FROM --platform=linux/${GOARCH} debian:bookworm
+ COPY --platform=${TARGETPLATFORM} (+runtime/ca-certificates.crt) /etc/ssl/certs/ca-certificates.crt
+ COPY --platform=${TARGETPLATFORM} (+build/bin/${PROGRAM} --GOARCH=${GOARCH} --PROGRAM=${PROGRAM}) /app/bin/${PROGRAM}
+
+ CMD ["/app/bin/${PROGRAM}"]
+ USER 1000:1000
+
+ LABEL org.opencontainers.image.source="https://github.com/Xe/x"
+
+ SAVE IMAGE --push ghcr.io/xe/x/${PROGRAM}:latest
+
everything:
FROM +deps
@@ -54,15 +88,8 @@ amano:
SAVE IMAGE --push ghcr.io/xe/x/amano:latest
anubis:
- FROM +runtime
-
- COPY +everything/bin/anubis /app/bin/anubis
- CMD ["/app/bin/anubis"]
-
- LABEL org.opencontainers.image.source="https://github.com/Xe/x"
-
- USER 1000:1000
- SAVE IMAGE --push ghcr.io/xe/x/anubis:latest
+ BUILD +ship --PROGRAM=anubis --GOARCH=amd64
+ BUILD +ship --PROGRAM=anubis --GOARCH=arm64
aura:
FROM +runtime