Docker и образ OpenCode: установка, запуск без sudo, скачивание и проверка
Введение
Эта статья — часть большого руководства
OpenCode в Docker на Ubuntu 24.04.
Руководство показывает, как запускать
OpenCode с флагом
--auto внутри контейнера
Docker.
С --auto агент не спрашивает вас перед каждой
командой, поэтому контейнер ограничивает то, до чего он может достать:
агент работает только в одном git worktree, отдельной
копии проекта.
Эта статья — шаг 1 (Docker и
образ OpenCode) руководства полностью.
Перед началом нужны две вещи: Docker на вашем компьютере и официальный
образ OpenCode той же версии, что и используемый вами OpenCode.
Ваш собственный образ из шага 3
(образ) собирается поверх этого образа. Команды приведены для
Ubuntu 24.04.
Установка Docker
Docker из репозитория Ubuntu вполне достаточно.
docker-buildx — это сборщик BuildKit: без него
каждая сборка печатает DEPRECATED: The legacy builder is
deprecated.
sudo apt update
sudo apt install docker.io docker-buildx
- Другой дистрибутив: установка Docker в Linux.
Docker без sudo
Чтобы запускать docker без sudo, добавьте себя в группу docker, а затем выйдите из системы и войдите снова:
sudo usermod -aG docker $USER
docker --version
Docker version 29.1.3, build 29.1.3-0ubuntu3~24.04.2
- Группа docker — это root на хосте. Кто в ней состоит, тот может смонтировать в контейнер любую папку. Агент никогда не получает сокет Docker; это проверяет шаг 6 (проверка, что видит контейнер).
Скачивание образа OpenCode
Скачайте официальный образ OpenCode той версии, которая запущена у вас на
хосте.
Он — основа вашего собственного образа из
шага 3 (образ):
opencode --version
opencode v2.1.4
docker pull ghcr.io/anomalyco/opencode:2.1.4
docker run --rm ghcr.io/anomalyco/opencode:2.1.4 --version
opencode v2.1.4
Проверка, что есть и то и другое
Прежде чем перейти к шагу 2
(worktree для агента) из
OpenCode в Docker на Ubuntu 24.04,
проверьте и то и другое.
Тег в последней команде — это версия, которую вывела
opencode --version:
docker --version
Docker version 29.1.3, build 29.1.3-0ubuntu3~24.04.2
opencode --version
opencode v2.1.4
docker image inspect --format '{{.RepoTags}}' ghcr.io/anomalyco/opencode:2.1.4
[ghcr.io/anomalyco/opencode:2.1.4]
Отсутствующий образ даёт ошибку и код выхода 1.
Проверено с тегом, которого нет:
docker image inspect --format '{{.RepoTags}}' ghcr.io/anomalyco/opencode:9.9.9
Error response from daemon: No such image: ghcr.io/anomalyco/opencode:9.9.9
Тогда скачайте его, как в разделе
Скачивание образа OpenCode.
Когда вы обновляете OpenCode на хосте, скачайте новый тег и поменяйте
FROM во всех
Dockerfile этой настройки на него
(страница Образ).
Автор статьи: Клавдия Кондакова