Code Container
kevinMEH/code-containerЗапускайте Claude Code, OpenCode, Codex с полными правами в безопасной Docker-среде. Защищает хост-систему от деструктивных операций, сохраняет состояние контейнера между сессиями, поддерживает кастомные инструменты и точки монтирования.
Установка
npm install -g code-containerREADME
Code Container: Изолированная Docker-среда для вашего автономного AI-агента.
Просто. Легковесно. Безопасно.
Быстрый старт
Требования
- Docker — Docker Desktop или Docker Engine
- POSIX-совместимая система — Linux, macOS, WSL
Установка
-
containerдоступен как npm-пакет. Для установки выполните:npm install -g code-container -
Затем выполните следующую команду, чтобы скопировать конфиги AI-агентов из
~/в~/.code-container/configsдля монтирования в контейнер:container initЛибо скопируйте конфиги вручную:
~/.config/opencode→~/.code-container/configs/.opencode~/.codex→~/.code-container/configs/.codex~/.copilot→~/.code-container/configs/.copilot~/.claude→~/.code-container/configs/.claude~/.claude.json→~/.code-container/configs/.claude.json~/.gemini→~/.code-container/configs/.gemini
-
Наконец, соберите Docker-образ. Это может занять до 5 минут:
container build
Готово 🎉 — container готов к использованию.
Миграция с container.sh
[!Note] Вы всё ещё используете shell-скрипт версию
container? Перейдите на npm-пакет, выполнив следующее:bash# Выйдите из всех контейнеров и сохраните важные данные... npm install -g code-container bash scripts/migrate.sh # Перенос конфигов в ~/.code-container/configs bash scripts/cleanup.sh # Опционально: очистка файлов конфигурации container buildПримечание: убедитесь, что все данные сохранены и контейнер готов к удалению. Контейнеры предыдущей версии несовместимы с контейнерами текущей версии.
Попробуйте Nitro
Псст: попробуйте мой новый проект: Nitro — простой и эффективный Bash-агент. В 11 раз дешевле и в 75 раз эффективнее Claude Code для Bash-задач.
npm install -g @aerovato/nitro
Использование
Перейдите в любой проект и запустите container, чтобы смонтировать проект и войти в контейнер:
cd /path/to/your/project
container # Войти в контейнерВнутри контейнера: запустите агента и работайте как обычно:
opencode # Запустить OpenCode
npm install <package> # Сохраняется в рамках контейнера
# ...Состояние контейнера сохраняется. При следующем запуске работа продолжается с того же места. Диалоги с AI и настройки сохраняются для всех проектов.
Основные команды
container # Войти в контейнер
container run /path/to # Войти в контейнер для конкретного проекта
container list # Список всех контейнеров
container stop # Остановить контейнер текущего проекта
container remove # Удалить контейнер текущего проекта
container build # Собрать Docker-образ
container clean # Удалить все остановленные контейнеры
container init # Скопировать/перекопировать файлы конфигурацииВозможности
Агенты без ограничений
Не хотите настраивать вручную? Клонируйте этот репозиторий и попросите агента настроить всё за вас:
Please configure all my container harnesses to run without permissions.
Деструктивные действия локализованы внутри контейнеров.
- Вы можете запускать агента с полными правами.
- Чтобы настроить агента на работу без разрешений, см.
Permissions.md.
Кастомизация
Не хотите настраивать вручную? Клонируйте этот репозиторий и попросите агента настроить всё за вас:
Add the following packages to the container environment: ... Add the following Docker flags to the container environment: ... Add a custom mount point to the container environment: ...
Легко добавляйте собственные инструменты и точки монтирования.
Добавление инструментов/пакетов: отредактируйте ~/.code-container/Dockerfile.User и пересоберите образ:
FROM code-container-base:latest
RUN apt-get update && apt-get install -y postgresql-client redis-toolsУведомление об устаревании:
~/.code-container/Dockerfileустарел и больше не используется. Если вы ранее вносили изменения в этот файл, перенесите своиRUN-команды в~/.code-container/Dockerfile.User.
Добавление точек монтирования: отредактируйте ~/.code-container/MOUNTS.txt и переинициализируйте контейнеры:
/absolute/path/on/host:/path/in/container
/absolute/path/on/host:/path/in/container:ro
Добавление Docker-флагов:
Отредактируйте ~/.code-container/DOCKER_FLAGS.txt, чтобы передавать дополнительные флаги в docker run и docker exec:
# Переменные окружения
-e MY_VAR=value
Для флагов, применимых только к docker run (например, проброс портов, сеть, GPU), используйте ~/.code-container/DOCKER_RUN_FLAGS.txt:
# Проброс портов
-p 4040:4040
-p 3000:3000
# Поддержка GPU
--gpus all
Каждая строка разбирается как shell-команда. Пустые строки и строки, начинающиеся с #, игнорируются.
Безопасность
- Хост-файловая система защищена: деструктивные операции затрагивают только контейнер.
- Изоляция проектов предотвращает взаимное влияние контейнеров друг на друга.
- Примечание: Git-конфиг и SSH-ключи монтируются с хоста в режиме только для чтения для поддержки Git-операций.
- Внимание: Файлы проекта всё равно могут быть удалены агентом — всегда используйте систему контроля версий.
- Внимание: Сетевой доступ по-прежнему доступен; данные могут быть переданы по сети.
⚠️ Предупреждение безопасности:
- Основная цель
container— защитить систему от непреднамеренного выполнения команд вродеrmилиapt.containerпредполагает, что агент действует добросовестно.
containerне защищает от prompt-инъекций или сетевой утечки данных в случае, если агент действует злонамеренно.- Не рекомендуется загружать или работать с непроверенным программным обеспечением даже внутри контейнера.
- Чувствительные данные внутри контейнера всё равно могут быть похищены злоумышленником.