A Docker HEALTHCHECK that only proves the process is listening will still report healthy while the app cannot serve traffic. Keep the in-image probe process-only: return success when the Node listener is bound and the event loop is responsive. Put Mongo, Redis, queue depth, or cold migrations on a separate readiness path that the orchestrator or load balancer consults before sending work, so a dependency blip does not flip the probe that drives container restarts.
Ops prove-out after the first image with HEALTHCHECK ships: from the same network the balancer uses, hit liveness until it stays green, then stop a dependency and confirm readiness fails while the container remains Up. Restore the dependency and watch readiness recover without a restart. If the target flaps at start, raise start-period, confirm the mapped port matches app.listen, and ensure the health path does not wait on something that is not ready during boot.