-
Notifications
You must be signed in to change notification settings - Fork 15
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
Fix Docker HealthCheck unhealthy status #374
Conversation
test: [ "CMD", "curl", "-f", "http://localhost:80/" ] | ||
interval: 2s | ||
timeout: 5s | ||
retries: 10 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The EDC UI health check was reported broken by people who deployed it with docker swarm. They needed to manually disable it in the image in the end.
Thus we should double check the HEALTHCHECK statement in the Dockerfile. To actually test the Dockerfile's HEALTHCHECK directive, we might require either docker swarm or kubernetes to launch the container in a way, that its original healtcheck actually gets checked.
In Docker you can define a healthcheck in the Dockerfile with a HEALTHCHECK directive.
It is best practice to supply it and we do.
However, docker-compose files do not respect that original HEALTHCHECK directive, which causes our health checks to be untested.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
To actually test the Dockerfile's HEALTHCHECK directive, we might require either docker swarm or kubernetes to launch the container in a way, that its original healtcheck actually gets checked.
Unfortunately, I was unable to find conclusive documentation on this, but as far as I am aware, there is no way to make Kubernetes honor the HEALTHCHECK
instruction.
Health checks are a Docker-specific feature; the underlying runtime, containerd, does not support them natively. Kubernetes does not use Docker, instead accessing containerd (or comparable runtimes) directly.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So we could remove the HEALTHCHECK directive from the Dockerfiles but add them as examples to the docker-compose.yaml files.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's an option, yes.
Will have to be revisited after #437. Maybe it's already fixed |
I believe this PR is stale after #437 |
Related to #361 Fix EDC UI Dockerfile