Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Closed
ghost opened this issue Oct 19, 2022 · 2 comments · Fixed by #2844
Labels
bug Something isn't working

Comments

@ghost
Copy link

ghost commented Oct 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.

@jjlin
Copy link
Contributor

jjlin commented Oct 20, 2022

I assume you meant ROCKET_ADDRESS, not ROCKET_HOST? The latter isn't a thing, AFAIK. Anyway, #2844 should fix this.

@BlackDex BlackDex changed the title Using a custom ROCKET_HOST value results in erroneously reporting container as "Unhealthy" (healthcheck.sh) Using a custom ROCKET_ADDRESS value results in erroneously reporting container as "Unhealthy" (healthcheck.sh) Oct 20, 2022
@ghost
Copy link
Author

ghost commented Oct 20, 2022

Correct, ROCKET_ADDRESS. Tired when writing that. Love the super-quick fix.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants