Source Build
Baue aus dem Quellcode, wenn du benutzerdefinierte Patches, Entwicklungs-Binärdateien oder Paketierungsarbeiten benötigst.
Voraussetzungen
- Go, wie in
mise.tomlundgo.moddeklariert. - Git, für Versionierung und Repository-Operationen.
Verwende mise, um die Projekt-Toolchain zu installieren:
mise installBauen mit dem Skript
Das Build-Skript schreibt die Ausgabe nach dist/<os>_<arch>/ und generiert Prüfsummen, wenn sha256sum verfügbar ist:
sh scripts/build/binaries.shUnter Linux baut es:
composiacomposia-controllercomposia-agent
Unter macOS und Windows baut es nur die CLI.
Build-Variablen
| Variable | Standard | Zweck |
|---|---|---|
VERSION | git describe --tags --always --dirty | In Binärdateien eingebettete Version. |
OUTPUT_DIR | dist | Ausgabeverzeichnis. |
GOOS | Host-Betriebssystem | Ziel-Betriebssystem. |
GOARCH | Host-Architektur | Ziel-Architektur. |
GOARM | Leer | ARM-Variante, z.B. 7. |
CGO_ENABLED | 0 | Statische Cross-Builds. |
Beispiele:
GOOS=linux GOARCH=arm64 sh scripts/build/binaries.sh
GOOS=linux GOARCH=arm GOARM=7 sh scripts/build/binaries.shManueller Go-Build
LDFLAGS="-s -w -X forgejo.alexma.top/alexma233/composia/internal/version.Value=$(git describe --tags --always --dirty)"
CGO_ENABLED=0 go build -trimpath -ldflags "$LDFLAGS" -o composia ./cmd/composia
CGO_ENABLED=0 go build -trimpath -ldflags "$LDFLAGS" -o composia-controller ./cmd/composia-controller
CGO_ENABLED=0 go build -trimpath -ldflags "$LDFLAGS" -o composia-agent ./cmd/composia-agentContainer-Images bauen
Das Dockerfile im Wurzelverzeichnis hat Ziele für jede Laufzeitumgebung:
docker build --target cli -t composia-cli:local .
docker build --target controller -t composia-controller:local .
docker build --target agent -t composia-agent:local .
docker build --target dev -t composia-dev:local .Das dev-Image enthält Go, Air, Docker CLI, Docker Buildx, Docker Compose und Git.
Zuletzt aktualisiert am • Renovate Bot