opencode-config/docs/handoff/pr-24-docker-setup.md
Sergey b9daf31233
feat: docker-compose + Dockerfile + .env.example (#24)
* feat(docker): add docker-compose + Dockerfile + .env.example

* docs(handoff): add pr-8 handoff + ADR-004

* docs(handoff): fix PR number

* docs: update project map + handoff + ADR

---------

Co-authored-by: opencode-agent <agent@slaid098.dev>
2026-07-23 23:35:18 +03:00

29 lines
No EOL
2.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# PR: Docker setup
## Что сделано
- docker-compose.yml: 2 services (dind + opencode), 4 bind mounts, opencode_network
- Dockerfile: node:20-slim, uv, gh, chromium, docker.io, opencode-ai, repomix
- .env.example: cleaned of private IPs/domains/tunnel UUID, placeholder only
- Убрано: cloudflared (tunnel → отдельный репо), digital_factory_app_network (self-contained network)
## Почему
Docker-based AI coding assistant. Публичный релиз — очищено от приватной инфраструктуры.
Source: `/root/workspace/opencode/` (ветка fix/pipeline-status/review-next-by-verdict) — docker-compose.yml, Dockerfile, .env.example.
## Pending
- AGENTS.md bind-mount volume — добавляется в #10
## Watch out
- `.env` gitignored — пользователь создаёт из `.env.example` (`cp .env.example .env`). `docker compose config` без `.env` падает с `env file .env not found` — это expected, не баг.
- .env.example НЕ содержит реальных ключей — placeholder only.
- CLOUDFLARE_TUNNEL_TOKEN= (optional) — оставлен как placeholder, tunnel перенесён в отдельный репо.
- ANTIDETECT_BROWSER_MCP_URL=http://localhost:8765/mcp — дефолт local, для remote переопределить в `.env` на `http://<server-ip>:8765/mcp`.
- GIT_AUTHOR/COMMITTER_EMAIL изменён с `agent@slaid098.dev` на `agent@opencode.local` — публичный репо без приватного домена.
- OPENCODE_MEMORY_DIR=/root/workspace/app_data/opencode-memory — путь внутри контейнера; bind mount `./app_data/workspaces:/root/workspace` маппит host→container, так что memory лежит в `./app_data/workspaces/app_data/opencode-memory` на хосте. Возможен нюанс с layout — проверить в runtime.
## Файлы
- `docker-compose.yml` — 2 services (dind, opencode), network `opencode_network`, 4 bind mounts
- `Dockerfile` — node:20-slim + apt (ca-certs, curl, git, ssh, autossh, python3, make, g++, chromium, gnupg, docker.io, ffmpeg) + uv + gh + opencode-ai + repomix
- `.env.example` — AI provider, OpenCode server, GitHub, Context7, Telegram, Redis, Cloudflare (optional), Antidetect Browser MCP
- `docs/handoff/pr-24-docker-setup.md` — этот файл
- `docs/decisions/004-pr-24-docker-setup.md` — ADR-004