software steht so weit.
jetzt build + docker build und testen
This commit is contained in:
1 parent
42f0c0accb
commit
ca6cdcca63
90 files changed
+10298
-480
No files matched your search
+33
@@ -0,0 +1,33 @@
|
||||
# Ein Image für sultan server und sultan agent, Multi-Arch (amd64 + arm64):
|
||||
#
|
||||
# docker buildx build --platform linux/amd64,linux/arm64 -t <name> --push .
|
||||
# docker build -t sultan:latest . # nur die eigene Architektur, lokal
|
||||
#
|
||||
# Go kompiliert auf der Build-Plattform für die Zielarchitektur (kein QEMU
|
||||
# nötig); das Laufzeit-Image enthält nur das statische Binary.
|
||||
|
||||
FROM --platform=$BUILDPLATFORM golang:1.26 AS build
|
||||
ARG TARGETOS TARGETARCH
|
||||
ARG VERSION=dev
|
||||
WORKDIR /src
|
||||
COPY go.mod go.sum ./
|
||||
RUN go mod download
|
||||
COPY . .
|
||||
RUN CGO_ENABLED=0 GOOS=$TARGETOS GOARCH=$TARGETARCH \
|
||||
go build -trimpath -ldflags "-s -w -X sultan/pkg/cli.Version=${VERSION}" -o /out/sultan . \
|
||||
&& mkdir -p /out/suldata
|
||||
|
||||
FROM gcr.io/distroless/static-debian12:nonroot
|
||||
ARG VERSION=dev
|
||||
LABEL org.opencontainers.image.title="sultan" \
|
||||
org.opencontainers.image.version="${VERSION}" \
|
||||
org.opencontainers.image.source="https://git.everdc.eu/chmln-app-dev/sultan"
|
||||
COPY --from=build /out/sultan /usr/local/bin/sultan
|
||||
# Datenverzeichnis gehört dem nonroot-User (65532); ein Named Volume übernimmt
|
||||
# das, ein Bind-Mount muss vorher per chown 65532:65532 vorbereitet werden.
|
||||
COPY --from=build --chown=65532:65532 /out/suldata /suldata
|
||||
# WORKDIR / → der Default ./suldata ist /suldata; `sultan token …` braucht kein --data-dir.
|
||||
WORKDIR /
|
||||
# Kein ENTRYPOINT: Compose ruft "sultan server …" bzw. "sultan agent …" auf
|
||||
# (Spec 7), `docker compose exec sultan-server sultan token …` funktioniert so ebenfalls.
|
||||
CMD ["sultan", "help"]
|
||||
Reference in new issue
Block a user