Готовый Docker-образ для локального MCP (публикация в Docker Hub)
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 25/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- docker, docker-compose, github-actions, python
- Domain
- api, build-system, devops
Research direction
Start by reviewing docker-compose-mcp-only/, Dockerfile.mcp, the requirements-mcp.txt dependency change, and the automated rebuild workflow, then compare them with docker-compose/docker-compose.yml. Confirm the image build and smoke test, the Pillow fix, the Docker Hub namespace, and whether scheduled rebuilds are required; the issue is done when these decisions are resolved and the self-contained MCP image is reproducibly published.
Written by the indexing model from the issue text.
Description
Проблема
Локальный запуск 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-колёса).
Открытые вопросы
- Namespace. Образ опубликован в
malikovpro/v8std-mcp. Если проекту удобнее официальный образ под своим именем — workflow параметризован (vars.DOCKERHUB_IMAGE+ secretsDOCKERHUB_USERNAME/DOCKERHUB_TOKEN), достаточно сменить имя. - Обновление образа. Пересборка при изменениях
docs/**/scripts/**уже настроена в workflow из PR. Нужен ли дополнительно запуск по расписанию?
- Dominant language
- Python
- Stars
- 136
- Forks
- 26
- Avg merge
- 40m
- Merged PRs (30d)
- 6
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from zeegin/v8std
-
Difficulty 3/5 1-2 days Newbie friendliness 45/100
-
Difficulty 5/5 Over a week Newbie friendliness 25/100
-
enhancement
Difficulty 3/5 1-2 days Newbie friendliness 35/100
Similar issues
-
[BUG] Container scenario crashes without expected_recovery_time, kube DNS example uses retry_waitOpenneeds-triage
Difficulty 2/5 1-3 hours Newbie friendliness 77/100
krkn-chaos/krkn#1627 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
NousResearch/hermes-agent#136483 ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 88/100
Maintainers usually reply within 1 day
-
[BUG] LazyStackedTensorDictStore zeroes the last byte of a new key set on the last elementPossibly taken @peterdsharpe claimed this today. Openbug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
pytorch/tensordict#2307 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day