Dockerfile.orch — multi-mode image (coordinator | agent): - coordinator: runs cf-orch coordinator on $CF_ORCH_PORT (default 7700) - agent: connects to $CF_COORDINATOR_URL, serves $CF_AGENT_GPU_IDS .forgejo/workflows/docker.yml — publishes on every vN.N.N tag: - ghcr.io/circuit-forge/cf-orch:latest - ghcr.io/circuit-forge/cf-orch:vX.Y.Z - Layer cache via GHA cache backend Closes #19. Bumps to v0.6.0.
25 lines
689 B
Bash
25 lines
689 B
Bash
#!/bin/bash
|
|
set -e
|
|
|
|
MODE="${1:-coordinator}"
|
|
PORT="${CF_ORCH_PORT:-7700}"
|
|
|
|
case "$MODE" in
|
|
coordinator)
|
|
echo "[cf-orch] Starting coordinator on port $PORT"
|
|
exec python -m circuitforge_core.resources.cli coordinator \
|
|
--host 0.0.0.0 --port "$PORT"
|
|
;;
|
|
agent)
|
|
COORDINATOR="${CF_COORDINATOR_URL:?CF_COORDINATOR_URL must be set for agent mode}"
|
|
GPU_IDS="${CF_AGENT_GPU_IDS:-0}"
|
|
echo "[cf-orch] Starting agent — coordinator=$COORDINATOR gpu_ids=$GPU_IDS"
|
|
exec python -m circuitforge_core.resources.cli agent \
|
|
--coordinator "$COORDINATOR" \
|
|
--gpu-ids "$GPU_IDS"
|
|
;;
|
|
*)
|
|
echo "Usage: cf-orch [coordinator|agent]"
|
|
exit 1
|
|
;;
|
|
esac
|