I'm running 9router in Docker and I'm confused by the version differences. The npm package has reached v0.5.50, while pulling decolua/9router:latest initially gave me v0.5.15. Since the npm package includes the built server files used by the container, it seemed like newer builds existed but were not being published to Docker.
This also causes a couple of problems: the dashboard keeps showing an update-available notice based on the npm version, and the "Update now" action only runs npm i -g 9router@latest, which does not update the server actually running inside the container.
Is the Docker publishing pipeline delayed or broken? Is there a supported way to run the newest release in Docker, or should I build and pin my own image? Also, is there a container-specific option that makes the built-in updater work?
2 Answers
The image registry currently lists :latest as the current release, so first make sure you run docker pull decolua/9router:latest and recreate the container rather than only restarting an existing one. Docker may otherwise keep using the previously downloaded image. For predictable deployments, though, an explicit version tag is still safer than :latest.
The newer release does appear to be available as an explicit Docker tag. The issue seems to be that the :latest tag does not reliably move along with the newest version, so pulling :latest can give you an older image even when a newer version tag already exists. Try pulling the specific release tag, such as 0.5.50, instead of relying on :latest.

That explains the mismatch. I was checking the npm version and pulling :latest, but the explicit Docker tags were already ahead. I’ll pin the image to the version tag rather than depending on :latest.