Skip to content

Add Dockerfile and ghcr publish workflow (ovos-persona-server) - #19

Merged
JarbasAl merged 1 commit into
devfrom
feat/docker-persona-image
Sep 1, 2026
Merged

JarbasAl merged 1 commit into
devfrom
feat/docker-persona-image

Conversation

@JarbasAl

Copy link
Copy Markdown
Member

🤖 Auto-generated by Claude Opus 5 (claude-opus-5) via Claude Code — NOT human-reviewed. Verify before acting.

This stacks on #18 (the pyproject.toml / ChatEngine migration) and gives the plugin a runnable image, since a plugin entry point alone still needs a server around it before anyone can actually talk to it. The Dockerfile installs ovos-persona-server[mcp] from PyPI and this plugin from the local checkout, then runs ovos-persona-server pointed at a bundled persona file whose solver list names this plugin's entry point. Both the ChatEngine and the legacy QuestionSolver share that same entry point name across their two groups, and ovos-persona-server prefers the ChatEngine when both are present, so the image gets the modern code path automatically.

The ovos-persona-server[mcp] floor is pinned to >=0.17.0a1 and --mcp is passed explicitly on the entrypoint, because from that release installing the [mcp] extra alone no longer mounts the MCP endpoint. The workflow copies the ghcr publish pattern already used by ovos-plugin-linguonnx: build on PRs touching the Dockerfile without pushing, and push latest/dev/tag images on the real branches.

I built this image on ser9 (not this machine, which has no Docker) and ran it as a throwaway container named rstest-rivescript-run on port 8385, one of the free ports in the assigned test range. docker logs shows loaded RivescriptChatEngine plugin: ovos-solver-rivescript-plugin, confirming the server picked the ChatEngine over the legacy solver. A real round trip against the running container:

request: POST http://localhost:8385/v1/chat/completions {"model":"rivescript-bot","messages":[{"role":"user","content":"hello there"}]}

reply: {"choices":[{"finish_reason":"stop","index":0,"message":{"role":"assistant","content":"Hey, how are you? Go on..."}}], ...}

No credentials were needed, as expected for a RiveScript backend. The container and image were removed afterward and the build directory deleted; nothing from this test was left running on ser9.

@coderabbitai

coderabbitai Bot commented Aug 14, 2026

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

github-actions Bot commented Aug 14, 2026

Copy link
Copy Markdown

Checking the status... all automated tasks are done! ✅

I've aggregated the results of the automated checks for this PR below.

🔨 Build Tests

The automated workshop has finished its shift. 🛠️

✅ All versions pass

Python Build Install Tests
3.10
3.11
3.12
3.13
3.14

🔍 Lint

Checking if we've met all our check criteria. ✅

ruff: issues found — see job log

⚖️ License Check

Scanning for any hidden proprietary blobs. 🌑

✅ No license violations found.

Policy: Apache 2.0 (universal donor). StrongCopyleft / NetworkCopyleft / WeakCopyleft / Other / Error categories fail. MPL allowed.


Automating the path to a better future 🌈

Ship a runnable image instead of just a pip-installable plugin, so RiveScript
can be tried as an OpenAI-compatible chat endpoint with one docker run. The
image runs ovos-persona-server with a bundled persona whose solver list
names this plugin, following the pattern already used by
ovos-plugin-linguonnx for its own server image. ovos-persona-server[mcp] is
pinned to >=0.17.0a1 and --mcp is passed explicitly, matching that release's
change where the extra alone stopped mounting the MCP endpoint.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@JarbasAl
JarbasAl force-pushed the feat/docker-persona-image branch from fce0b26 to 9f6d8aa Compare September 1, 2026 13:46
@JarbasAl
JarbasAl marked this pull request as ready for review September 1, 2026 23:57
@JarbasAl
JarbasAl merged commit 168611d into dev Sep 1, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant