Using a custom ROCKET_ADDRESS value results in erroneously reporting container as "Unhealthy" (healthcheck.sh) #1947

Closed
opened 2026-04-06 02:39:55 +02:00 by MrUnknownDE · 0 comments
Owner

Originally created by @ghost on 10/19/2022

Subject of the issue

healthcheck.sh ignores ROCKET_HOST value (if different from "localhost") and erroneously reports container as Unhealthy

Deployment environment

Docker installation of vaultwarden with a little customization (set ROCKET_HOST and ROCKET_PORT in the environment section of docker-compose).

  • vaultwarden version:
    vaultwarden:latest

  • Install method:
    docker / docker-compose

Steps to reproduce

Set ROCKET_HOST in docker-compose environment section for the container to a real local IP address (e.g. 192.168.1.1).
Set "network_mode: host" in docker-compose.
Start up the container.
After a few minutes, check container status with "docker ps".

Expected behaviour

"docker ps" reports container as "Healthy" if healthy, regardless of whether ROCKET_HOST is "localhost" or a different value.

Actual behaviour

"docker ps" reports container as "Unhealthy" if ROCKET_HOST value is different from "localhost".

Troubleshooting data

Issue stems from the very last line of /healthcheck.sh, which hardcodes "localhost" as the destination host for the curl call.

Is:

curl --insecure --fail --silent --show-error \
     "http${s}://localhost:${ROCKET_PORT}${base_path}/alive" || exit 1

Should be (with the proper initialization of ROCKET_HOST earlier, of course):

curl --insecure --fail --silent --show-error \
     "http${s}://${ROCKET_HOST}:${ROCKET_PORT}${base_path}/alive" || exit 1

Consequently, if Rocket doesn't listen on localhost:$ROCKET_PORT, but on (e.g.) 192.168.1.1:$ROCKET_PORT, the healthcheck will fail and the container will be reported as Unhealthy.

*Originally created by @ghost on 10/19/2022* ### Subject of the issue healthcheck.sh ignores ROCKET_HOST value (if different from "localhost") and erroneously reports container as Unhealthy ### Deployment environment Docker installation of vaultwarden with a little customization (set ROCKET_HOST and ROCKET_PORT in the environment section of docker-compose). * vaultwarden version: vaultwarden:latest * Install method: docker / docker-compose ### Steps to reproduce Set ROCKET_HOST in docker-compose environment section for the container to a real local IP address (e.g. 192.168.1.1). Set "network_mode: host" in docker-compose. Start up the container. After a few minutes, check container status with "docker ps". ### Expected behaviour "docker ps" reports container as "Healthy" if healthy, regardless of whether ROCKET_HOST is "localhost" or a different value. ### Actual behaviour "docker ps" reports container as "Unhealthy" if ROCKET_HOST value is different from "localhost". ### Troubleshooting data Issue stems from the very last line of /healthcheck.sh, which hardcodes "localhost" as the destination host for the curl call. Is: ``` curl --insecure --fail --silent --show-error \ "http${s}://localhost:${ROCKET_PORT}${base_path}/alive" || exit 1 ``` Should be (with the proper initialization of ROCKET_HOST earlier, of course): ``` curl --insecure --fail --silent --show-error \ "http${s}://${ROCKET_HOST}:${ROCKET_PORT}${base_path}/alive" || exit 1 ``` Consequently, if Rocket doesn't listen on localhost:$ROCKET_PORT, but on (e.g.) 192.168.1.1:$ROCKET_PORT, the healthcheck will fail and the container will be reported as Unhealthy.
MrUnknownDE added the bugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbug labels 2026-04-06 02:41:43 +02:00
Sign in to join this conversation.
No Label bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github/vaultwarden#1947