A self-hosted orchestration system crafted for power users. composia.xyz
Something went wrong. Try again.
title: "Build depuis les sources" date: '2026-05-26T00:00:00+08:00' weight: 20 #
Compilez depuis les sources lorsque vous avez besoin de correctifs personnalisés, de binaires de développement ou de travaux de packaging.
Prérequis #
- Go, tel que déclaré dans
mise.tomletgo.mod. - Git, pour le versionnement et les opérations sur le dépôt.
Utilisez mise pour installer la chaîne d'outils du projet :
mise install
Compiler avec le script #
Le script de build écrit la sortie dans dist/<os>_<arch>/ et génère des sommes de contrôle lorsque sha256sum est disponible :
sh scripts/build/binaries.sh
Sur Linux, il compile :
composiacomposia-controllercomposia-agent
Sur macOS et Windows, il compile uniquement la CLI.
Variables de build #
| Variable | Valeur par défaut | Rôle |
|---|---|---|
VERSION |
git describe --tags --always --dirty |
Version intégrée dans les binaires. |
OUTPUT_DIR |
dist |
Répertoire de sortie. |
GOOS |
OS hôte | OS cible. |
GOARCH |
Architecture hôte | Architecture cible. |
GOARM |
Vide | Variante ARM, comme 7. |
CGO_ENABLED |
0 |
Compilations croisées statiques. |
Exemples :
GOOS=linux GOARCH=arm64 sh scripts/build/binaries.sh
GOOS=linux GOARCH=arm GOARM=7 sh scripts/build/binaries.sh
Build Go manuel #
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-agent
Build des images de conteneur #
Le Dockerfile racine a des cibles pour chaque runtime :
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 .
L'image dev inclut Go, Air, Docker CLI, Docker Buildx, Docker Compose et Git.