fix(docker): copy the rule method modules into the image

The 0.4.2 image does not contain serve_api/methods/. That directory holds every publication and reference method, and load_methods() in src/serve.py reads it at startup. Without it, no method loads:

  • every /rules/… ID returns {"error": "No supported publication repository use identifiers with the format of the given Ruleset Id."};
  • /ref returns 500 Internal Server Error.

This was the state of production and acceptance from the 0.4.2 deployment on 2 October until 10 October.

The change adds one COPY methods/ ./methods/ to serve_api/Dockerfile, with a comment.

Verified

  • Locally: an image built from this branch loads 12 method modules, and /rules/BWBR0015703 returns the full RuleSet (about 800 KB).
  • Live (10 October): an image built from this Dockerfile now runs on cprmv.open-regels.nl, cprmv.open-rules.eu and acc.cprmv.open-regels.nl. On all three:
    • /rules/BWBR0015703 and /rules/CVDR712517 return RuleSets;
    • /ref?reference=jci1.31:c:BWBR0015703&artikel=1 answers 307 to /rules/BWBR0015703_2026-10-10_latest,Artikel 1, which returns 200.

Why this should merge soon

Until it is merged, the next build of main pushes a :latest without methods/ again, and a routine docker compose pull brings the outage back.

Not in this change

  • /mcp still returns 404. FastMCP.from_fastapi(app) and combined_app are created (serve.py:95-108) before any route is registered, so the MCP server has no tools. The container also serves app, not combined_app.
  • Nothing in CI exercises the image. 0661a0d8 commented out 10 of the 13 tests. A smoke test that runs the built image and calls /rules/BWBR0015703 would have caught this.

Both will be raised in a separate issue.

Merge request reports

Loading
Loading