Skip to content

Готовый Docker-образ для локального MCP (публикация в Docker Hub) #32

Description

@malikov-pro

Проблема

Локальный запуск MCP сейчас требует клонировать репозиторий и собирать образ на месте (docker-compose/docker-compose.yml). Это лишний барьер для тех, кто хочет просто подключить v8std к ИИ-редактору.

Предложение

Публиковать самодостаточный образ MCP: база стандартов и поисковый индекс генерируются на этапе сборки, монтирование репозитория не нужно. База — python:3.12-alpine, итоговый образ ~305 МБ (против ~485 МБ у текущего slim-варианта с zensical, который MCP не нужен).

Запуск без клона:

docker run -d --name v8std-mcp -p 127.0.0.1:8765:8765 malikovpro/v8std-mcp:latest
codex mcp add v8std-local --url http://127.0.0.1:8765/mcp

Что уже сделано

  • Образ собран и опубликован: https://hub.docker.com/repository/docker/malikovpro/v8std-mcp — теги latest, датированные (2026-09-01) и по коммиту (sha-…), пока только linux/amd64 (arm64 — через setup-qemu в CI).
  • Подготовлена ветка: отдельный стек docker-compose-mcp-only/ (compose + Dockerfile.mcp), существующий docker-compose/ не изменён, workflow автоматической пересборки, скрипт сборки со smoke-тестом. PR пришлю следом.

Попутный багфикс

Pillow не объявлен в requirements-mcp.txt, хотя generate_ai_artifacts.py импортирует generate_social_cards.py на верхнем уровне. Сейчас зависимость приходит только транзитивно через окружение с zensical — локальный MCP в чистом окружении падает с ModuleNotFoundError: No module named 'PIL'. В ветке Pillow добавлен явно (с пинами версий, имеющими musllinux-колёса).

Открытые вопросы

  1. Namespace. Образ опубликован в malikovpro/v8std-mcp. Если проекту удобнее официальный образ под своим именем — workflow параметризован (vars.DOCKERHUB_IMAGE + secrets DOCKERHUB_USERNAME/DOCKERHUB_TOKEN), достаточно сменить имя.
  2. Обновление образа. Пересборка при изменениях docs/**/scripts/** уже настроена в workflow из PR. Нужен ли дополнительно запуск по расписанию?

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions