ghcr.io/hyperpolymath/boj-server:latest and :main both have ENTRYPOINT ["node", "mcp-bridge/main.js"] — the stdio MCP bridge — not the Elixir/Cowboy REST server. Running the image as a service crash-loops (a stdio bridge with no stdin exits immediately; observed 74 restarts).
Root cause: the publish workflow builds the root Containerfile (the Node bridge) rather than container/Containerfile (the 3-stage Elixir release). Only tags present are main and latest, both the bridge.
Impact: there is no pullable REST image; deploying the REST API requires building from source on the host.
Fix: publish container/Containerfile (Elixir REST release) as :latest, and publish the MCP bridge under a distinct tag (e.g. :bridge).
Found while deploying to Hetzner, 2026-07-08.
ghcr.io/hyperpolymath/boj-server:latestand:mainboth haveENTRYPOINT ["node", "mcp-bridge/main.js"]— the stdio MCP bridge — not the Elixir/Cowboy REST server. Running the image as a service crash-loops (a stdio bridge with no stdin exits immediately; observed 74 restarts).Root cause: the publish workflow builds the root
Containerfile(the Node bridge) rather thancontainer/Containerfile(the 3-stage Elixir release). Only tags present aremainandlatest, both the bridge.Impact: there is no pullable REST image; deploying the REST API requires building from source on the host.
Fix: publish
container/Containerfile(Elixir REST release) as:latest, and publish the MCP bridge under a distinct tag (e.g.:bridge).Found while deploying to Hetzner, 2026-07-08.