# Codex через Docker

Нужен только Docker с Compose (Docker Desktop на Windows/macOS).
Codex 0.159.3, relay, Python, Node.js, Git и настройки входят в образ.
Первичная сборка скачивает зависимости из Docker Hub, Debian и npm.

1. Скачайте https://ru.dobrochan.ru/codex/downloads/codex-docker.tar.gz и распакуйте.
2. Откройте терминал в распакованной папке:

   ```sh
   docker compose build
   docker compose run --rm codex
   ```

При первом запуске появится код входа. Откройте https://auth.openai.com/codex/device
в браузере (можно на другом устройстве) и введите код. Нужен доступ браузера
к этой официальной странице. После входа Codex запускается автоматически.
Для повторного входа: `docker compose run --rm codex login`.

Авторизация, история и уникальный локальный сертификат сохраняются в Docker volume.
`--rm` удаляет контейнер после выхода, но сохраняет этот volume.
Не запускайте `docker compose down -v`, если хотите сохранить вход и историю.
Не переносите auth.json с другого активного устройства; предпочтителен отдельный вход.

## Рабочая папка

По умолчанию Codex видит распакованную папку как `/workspace`.
Чтобы работать с проектом, создайте рядом с compose.yaml файл `.env`:

```dotenv
CODEX_WORKSPACE=/полный/путь/к/проекту
```

Windows: используйте путь вида `C:/Users/Name/projects/my-project`.
Изменения в `/workspace` сохраняются в выбранном проекте на компьютере.
Вложенная песочница Codex отключена (`sandbox_mode="danger-full-access"`),
поскольку изоляцию обеспечивает Docker. Агент может менять всю подключённую
папку проекта и свой volume. Остальные папки компьютера не подключены.
Контейнер не privileged, Docker socket не подключён. Интерактивные подтверждения
Codex сохраняются; флаг обхода approvals автоматически не добавляется.
Контейнер работает обычным пользователем UID 1000. На Linux этот пользователь
должен иметь доступ к папке проекта. Если ваши `id -u` / `id -g` отличаются от
1000, до первой сборки укажите их в `.env` как `CODEX_UID` и `CODEX_GID`.
macOS/Windows обычно управляют доступом через Docker Desktop.

## Команды

```sh
docker compose run --rm codex --version
docker compose run --rm codex exec --skip-git-repo-check "Объясни структуру проекта"
docker compose run --rm codex resume --last
```

Codex и встроенные Apps/MCP идут через localhost HTTPS relay внутри контейнера,
затем через ru.dobrochan.ru, DE (резерв NL) и OpenAI. Ответ возвращается через RU. Порты на хост не публикуются. Ключи и токены
не входят в образ. Локальные STDIO MCP нужно устанавливать внутри образа;
localhost компьютера не является localhost контейнера. Сторонние MCP используют
свои адреса. Telegram-мост хоста в этот образ не включён.

## Обновление

Версия закреплена на 0.159.3. Для другой версии задайте `DOBROCHAN_CODEX_VERSION` в `.env`
и пересоберите `docker compose build --pull`. Совместимость другой версии
нужно проверить отдельно. Обновление образа не удаляет volume.
