Files
minecraft-lab/docs/phase4-results.md
2026-10-04 00:30:09 +07:00

3.2 KiB

Phase 4: server runtime

Phase 4 завершена для NeoForge 21.1.252 / Minecraft 1.21.1. Full release 0.0.4 реально запущен с пустой директорией данных через scripts/server.sh.

Реальная Docker-проверка

  • Server root: .tools/phase4-server, project: minecraft-lab-phase4.
  • Настройки: EULA=TRUE по ранее полученному принятию, UID/GID=1000:1000, memory=2G, IPv4 loopback port=25566.
  • Первый up -d --wait --wait-timeout 600 завершился healthy. Лог подтвердил создание нового мира, Minecraft 1.21.1, NeoForge 21.1.252, Backpacks 3.26.7 и Core 1.5.5. Mouse Tweaks отсутствовал в серверных JAR.
  • Docker inspect подтвердил обычные абсолютные bind mounts: host runtime → /data rw, release → /modpacks ro, server/config → /config ro.
  • world/level.dat принадлежит 1000:1000. Pack загружен из .mrpack, server override marker=server-override-v1, online-mode=false и enforce-secure-profile=false подтверждены.
  • Restart того же контейнера завершился healthy.
  • После остановки и create --force-recreate все 23 файла мира совпали по путям/SHA256 до нового запуска. Неуправляемый config marker сохранился.
  • Вновь запущенный контейнер healthy; mc-health отвечает Minecraft 1.21.1.
  • Финальная версия wrapper дополнительно проверена реальным up/exec/down после добавления проверки принадлежности Compose project.
  • Тестовый контейнер/network удалены через down, runtime и binding сохранены. Основной сервер на 25565 не пересоздавался и остался healthy.

Свидетельства: .tools/phase4-evidence/first-start.log, mounts.json, before-recreate-world.json, recreate-verification.txt, recreated-start.log. Test root остаётся пригодным для последующих проверок.

Автоматические проверки

npm test: 25 тестов. Новые runtime tests используют controlled Compose/Docker substitutes и проверяют integrity/coverage, EULA/UID/GID, immutable binding, смену release/project, защиту существующего мира, failed startup/exit code, operation lock, offline/bind contract, paths и конфликт project другого root. Build/mod regression tests также проходят. Реальная Docker-проверка выше подтверждает integration, которую substitutes сами по себе не доказывают.

Bash/Node syntax и git diff --check пройдены. Backup, миграция существующего мира, remote deployment и расширенная диагностика healthcheck не реализуются этим этапом. Контракт и команды — runtime.md.