docker-git создаёт отдельную Docker-среду для каждого репозитория, issue или PR.
Теперь есть API-first controller mode:
- хосту нужен только Docker
- поднимается
docker-git-apicontroller container - его state живёт в Docker volume
docker-git-projects - controller через Docker API создаёт и обслуживает дочерние project containers
- снаружи ты общаешься с системой через HTTP API или
./ctl
- Для controller mode: Docker Engine или Docker Desktop
- Доступ к Docker без
sudo - Node.js и
npmнужны только для legacy host CLI mode
./ctl up
./ctl health
./ctl projectsAPI публикуется на http://127.0.0.1:3334 по умолчанию.
./ctl request GET /projects
./ctl request POST /projects '{"repoUrl":"https://github.com/ProverCoderAI/docker-git.git","repoRef":"main"}'Важно:
./ctlне требуетcurl,nodeилиpnpmна хосте- запросы к API выполняются через
curlвнутри controller container .docker-gitбольше не обязан лежать на host filesystem: controller хранит его в Docker volume
npm i -g @prover-coder-ai/docker-git
docker-git --helpЧерез API controller можно создать проект и потом поднять его отдельно:
./ctl request POST /projects '{"repoUrl":"https://github.com/ProverCoderAI/docker-git.git","repoRef":"main","up":false}'
./ctl projectsAPI возвращает projectId, после чего можно:
./ctl request POST /projects/<projectId>/up
./ctl request GET /projects/<projectId>/logs
./ctl request POST /projects/<projectId>/downpnpm run e2e:runtime-volumes-sshСценарий доказывает, что контейнер стартует через Docker, runtime state живёт в named volumes, а SSH реально заходит в дочерний project container.
docker-git --help