ソースビルド
カスタムパッチ、開発用バイナリ、パッケージング作業が必要な場合はソースからビルドします。
前提条件
mise.tomlとgo.modで宣言されているバージョンの Go。- バージョンスタンプとリポジトリ操作用の Git。
プロジェクトツールチェーンのインストールには mise を使用します:
mise installスクリプトでのビルド
ビルドスクリプトは出力を dist/<os>_<arch>/ に書き込み、sha256sum が利用可能な場合はチェックサムを生成します:
sh scripts/build/binaries.shLinux では以下をビルドします:
composiacomposia-controllercomposia-agent
macOS と Windows では CLI のみをビルドします。
ビルド変数
| 変数 | デフォルト | 目的 |
|---|---|---|
VERSION | git describe --tags --always --dirty | バイナリに埋め込まれるバージョン。 |
OUTPUT_DIR | dist | 出力ディレクトリ。 |
GOOS | ホスト OS | ターゲット OS。 |
GOARCH | ホストアーキテクチャ | ターゲットアーキテクチャ。 |
GOARM | 空 | ARM バリアント(例: 7)。 |
CGO_ENABLED | 0 | 静的クロスビルド。 |
例:
GOOS=linux GOARCH=arm64 sh scripts/build/binaries.sh
GOOS=linux GOARCH=arm GOARM=7 sh scripts/build/binaries.sh手動 Go ビルド
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コンテナイメージのビルド
ルートの Dockerfile には各ランタイム向けのターゲットがあります:
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 .dev イメージには Go、Air、Docker CLI、Docker Buildx、Docker Compose、Git が含まれています。
最終更新日 • Renovate Bot