Skip to content

Conversation

@tommylehmann
Copy link

Docker itself but also docker-compose and kubernetes support health or readyness checks for containers. For web applications its mostly an endpoint api/health or /health that responds with a quite simple answer if the application is running. Since we have no database connection here we don't need to check that. Using a http endpoint enables the use of http checks in kubernetes.

Here the healthcheck endpoint is added using fastify-healthcheck that uses @fastify/under-pressure. To be able to check the state from the container itself without adding new dependencies a health_check script is added with it's own package.json since it is not necessary to run the server itself. Furthermore that script is added to the containerimage and configured with the HEALTHCHECK statement for docker to use.

Tommy Lehmann added 4 commits November 11, 2025 10:37
… standard endpoint for common healthchecks in container tools
Docker HEALTHCHECKS are executed from within the container. To support standard docker healthchecks there need to be a script that is able to check if the server is running correctly. To avoid further dependancies like curl and to be able to use a distroless base in the future the checktool is implemented in JavaScript and executed with node like the server itself. Using the same technology provides the possiblity load the same config file and thus make the healthcheck in sync with the server configuration in regards of pathes and ports.
The Docker HEALTHCHECK directive is also configured accordingly. So orchastration tools like docker-compose that use the docker HEALTHCHECK and detect if the container is runnig correctly or not.
all packagemanager operations in dockerfiles should clean cache for multible reasons.
@rainer-exxcellent
Copy link
Contributor

This is a good Idea. We check the pull request.

@domachine
Copy link
Contributor

@tommylehmann Thanks for the PR. It looks good from my side. Just one thing I'm wondering about is if it is a better idea to just install curl into the image and use that to perform the check? Do you see any issues about that?

Regards

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants