docker-git создаёт отдельную Docker-среду для каждого репозитория, issue или PR.
По умолчанию проекты лежат в ~/.docker-git.
bun add -g @prover-coder-ai/docker-git
docker-git --helpЛокальный запуск из репозитория:
bun install
bun run docker-git --helpdocker-git auth github login --web
docker-git auth codex login --web
docker-git auth claude login --webМожно передавать ссылку на репозиторий, ветку (/tree/...), issue или PR.
docker-git clone https://github.com/ProverCoderAI/docker-git/issues/122 --force --mcp-playwright--forceпересоздаёт окружение и удаляет volumes проекта.--mcp-playwrightвключает Playwright MCP и Chromium sidecar для браузерной автоматизации.
Автоматический запуск агента:
docker-git clone https://github.com/ProverCoderAI/docker-git/issues/122 --force --auto--autoсам выбирает Claude или Codex по доступной авторизации. Если доступны оба, выбор случайный.--auto=claudeили--auto=codexпринудительно выбирает агента.- В auto-режиме агент сам выполняет задачу, создаёт PR и после завершения контейнер очищается.
Применение конфигурации:
docker-git apply
docker-git apply --no-up
docker-git apply-all
docker-git apply-all --activeapplyприменяет конфиг к одному проекту.--no-upтолько обновляет файлы безdocker compose up.apply-allприменяет конфиг ко всем проектам.--activeтолько к запущенным контейнерам.
Для запуска WEB версии:
bun run docker-git -- browserПо умолчанию web-версия слушает все интерфейсы хоста (0.0.0.0), поэтому её можно открыть с другого устройства в LAN, например http://192.168.0.206:4174/. Чтобы ограничить доступ только этой машиной:
DOCKER_GIT_WEB_HOST=127.0.0.1 bun run docker-git -- browserdocker-git --helpСтруктура проекта: APP - CLI + React (Frontend) LIB - Весь бекенд (Основная бизнес логика) API - Просто апи сервер поднятный над LIB
APP работает только с API, и не имеет доступа к LIB API работает только с LIB
docker-git is host-Docker-backed by design. The controller container
(docker-git-api) talks to the host Docker daemon via the bind-mounted
/var/run/docker.sock, which is how it creates and manages per-project
containers. There is no isolated Docker-in-Docker runtime.
This means the user that runs the host CLI (bun run docker-git ...) needs
to be able to talk to that same socket directly. Three failure modes can
look superficially identical and are diagnosed separately by the CLI:
- Host Docker daemon is not reachable –
docker infofails with "Cannot connect to the Docker daemon". Start Docker (e.g.sudo systemctl start docker) or setDOCKER_HOSTto a reachable endpoint. - Host Docker socket rejected this user –
docker infofails with "permission denied" while talking to/var/run/docker.sock. This is a host configuration issue, not adocker-gitoutage. Add the user to thedockergroup, switch to rootless Docker, or fix the socket ownership (root:docker, mode660). After changing groups, log out and back in (or runnewgrp docker). - Controller container not running – the host CLI cannot reach
docker-git-apion its API port. Bring the controller up viadocker compose up -d --build, or point the CLI at an existing controller usingDOCKER_GIT_API_URL.
When the CLI cannot acquire Docker access it now prints a message that
names the specific failure mode, restates the host-Docker contract, and
lists remediation steps for that exact mode. Implementation lives in
packages/app/src/docker-git/controller-docker-diagnostics.ts.