From c5d466c36e42b985e7a4e9758d006e024519f83e Mon Sep 17 00:00:00 2001 From: fumoboy007 <2100868+fumoboy007@users.noreply.github.com> Date: Fri, 23 Aug 2024 14:38:02 -0400 Subject: [PATCH] Add `HEALTHCHECK` instruction to `Dockerfile`. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The `Dockerfile` currently does not have a `HEALTHCHECK` instruction. Users of the Docker image currently need to add it manually (e.g. via Docker Compose). Instead, the `Dockerfile` itself should include the instruction. To determine whether the service is healthy, one can use the [`PING`](https://redis.io/docs/latest/commands/ping/) command via the [Redis CLI](https://redis.io/docs/latest/develop/connect/cli/), which is already part of the image. The command “is useful for […] verifying the server's ability to serve data”. Most of the default `HEALTHCHECK` [options](https://docs.docker.com/reference/dockerfile/#healthcheck) seem reasonable: ``` --interval=30s --timeout=30s --start-interval=5s --retries=3 ``` I set `--start-period=1s` because the default of `0s` is too quick for this program. Users of the image can still override the `HEALTHCHECK` instruction if they want to customize the command or the options. --- 6.2/alpine/Dockerfile | 4 ++++ 6.2/debian/Dockerfile | 4 ++++ 7.0/alpine/Dockerfile | 4 ++++ 7.0/debian/Dockerfile | 4 ++++ 7.2/alpine/Dockerfile | 4 ++++ 7.2/debian/Dockerfile | 4 ++++ 7.4-rc/alpine/Dockerfile | 4 ++++ 7.4-rc/debian/Dockerfile | 4 ++++ 7.4/alpine/Dockerfile | 4 ++++ 7.4/debian/Dockerfile | 4 ++++ Dockerfile.template | 4 ++++ 11 files changed, 44 insertions(+) diff --git a/6.2/alpine/Dockerfile b/6.2/alpine/Dockerfile index 43d02e104..ad871d8d8 100644 --- a/6.2/alpine/Dockerfile +++ b/6.2/alpine/Dockerfile @@ -139,3 +139,7 @@ ENTRYPOINT ["docker-entrypoint.sh"] EXPOSE 6379 CMD ["redis-server"] + +# Search for "PONG" instead of relying on the exit status because of +# https://stackoverflow.com/a/71504657/815742. +HEALTHCHECK --start-period=1s CMD redis-cli ping | grep ^PONG$ diff --git a/6.2/debian/Dockerfile b/6.2/debian/Dockerfile index 7f3c1c754..73c26e7db 100644 --- a/6.2/debian/Dockerfile +++ b/6.2/debian/Dockerfile @@ -148,3 +148,7 @@ ENTRYPOINT ["docker-entrypoint.sh"] EXPOSE 6379 CMD ["redis-server"] + +# Search for "PONG" instead of relying on the exit status because of +# https://stackoverflow.com/a/71504657/815742. +HEALTHCHECK --start-period=1s CMD redis-cli ping | grep ^PONG$ diff --git a/7.0/alpine/Dockerfile b/7.0/alpine/Dockerfile index 80aaa20b7..0972cf41f 100644 --- a/7.0/alpine/Dockerfile +++ b/7.0/alpine/Dockerfile @@ -139,3 +139,7 @@ ENTRYPOINT ["docker-entrypoint.sh"] EXPOSE 6379 CMD ["redis-server"] + +# Search for "PONG" instead of relying on the exit status because of +# https://stackoverflow.com/a/71504657/815742. +HEALTHCHECK --start-period=1s CMD redis-cli ping | grep ^PONG$ diff --git a/7.0/debian/Dockerfile b/7.0/debian/Dockerfile index d252fa65c..d3651d17c 100644 --- a/7.0/debian/Dockerfile +++ b/7.0/debian/Dockerfile @@ -148,3 +148,7 @@ ENTRYPOINT ["docker-entrypoint.sh"] EXPOSE 6379 CMD ["redis-server"] + +# Search for "PONG" instead of relying on the exit status because of +# https://stackoverflow.com/a/71504657/815742. +HEALTHCHECK --start-period=1s CMD redis-cli ping | grep ^PONG$ diff --git a/7.2/alpine/Dockerfile b/7.2/alpine/Dockerfile index 19304a8d4..bb349c11f 100644 --- a/7.2/alpine/Dockerfile +++ b/7.2/alpine/Dockerfile @@ -139,3 +139,7 @@ ENTRYPOINT ["docker-entrypoint.sh"] EXPOSE 6379 CMD ["redis-server"] + +# Search for "PONG" instead of relying on the exit status because of +# https://stackoverflow.com/a/71504657/815742. +HEALTHCHECK --start-period=1s CMD redis-cli ping | grep ^PONG$ diff --git a/7.2/debian/Dockerfile b/7.2/debian/Dockerfile index 3e2fbd135..09ea3ffcc 100644 --- a/7.2/debian/Dockerfile +++ b/7.2/debian/Dockerfile @@ -148,3 +148,7 @@ ENTRYPOINT ["docker-entrypoint.sh"] EXPOSE 6379 CMD ["redis-server"] + +# Search for "PONG" instead of relying on the exit status because of +# https://stackoverflow.com/a/71504657/815742. +HEALTHCHECK --start-period=1s CMD redis-cli ping | grep ^PONG$ diff --git a/7.4-rc/alpine/Dockerfile b/7.4-rc/alpine/Dockerfile index 402c7bb93..be2d91b34 100644 --- a/7.4-rc/alpine/Dockerfile +++ b/7.4-rc/alpine/Dockerfile @@ -139,3 +139,7 @@ ENTRYPOINT ["docker-entrypoint.sh"] EXPOSE 6379 CMD ["redis-server"] + +# Search for "PONG" instead of relying on the exit status because of +# https://stackoverflow.com/a/71504657/815742. +HEALTHCHECK --start-period=1s CMD redis-cli ping | grep ^PONG$ diff --git a/7.4-rc/debian/Dockerfile b/7.4-rc/debian/Dockerfile index 3f202ef71..48c951040 100644 --- a/7.4-rc/debian/Dockerfile +++ b/7.4-rc/debian/Dockerfile @@ -148,3 +148,7 @@ ENTRYPOINT ["docker-entrypoint.sh"] EXPOSE 6379 CMD ["redis-server"] + +# Search for "PONG" instead of relying on the exit status because of +# https://stackoverflow.com/a/71504657/815742. +HEALTHCHECK --start-period=1s CMD redis-cli ping | grep ^PONG$ diff --git a/7.4/alpine/Dockerfile b/7.4/alpine/Dockerfile index 93cbf23e0..9af42303f 100644 --- a/7.4/alpine/Dockerfile +++ b/7.4/alpine/Dockerfile @@ -139,3 +139,7 @@ ENTRYPOINT ["docker-entrypoint.sh"] EXPOSE 6379 CMD ["redis-server"] + +# Search for "PONG" instead of relying on the exit status because of +# https://stackoverflow.com/a/71504657/815742. +HEALTHCHECK --start-period=1s CMD redis-cli ping | grep ^PONG$ diff --git a/7.4/debian/Dockerfile b/7.4/debian/Dockerfile index eef66335d..65e71b4be 100644 --- a/7.4/debian/Dockerfile +++ b/7.4/debian/Dockerfile @@ -148,3 +148,7 @@ ENTRYPOINT ["docker-entrypoint.sh"] EXPOSE 6379 CMD ["redis-server"] + +# Search for "PONG" instead of relying on the exit status because of +# https://stackoverflow.com/a/71504657/815742. +HEALTHCHECK --start-period=1s CMD redis-cli ping | grep ^PONG$ diff --git a/Dockerfile.template b/Dockerfile.template index 489f6102a..0b31a3afa 100644 --- a/Dockerfile.template +++ b/Dockerfile.template @@ -235,3 +235,7 @@ ENTRYPOINT ["docker-entrypoint.sh"] EXPOSE 6379 CMD ["redis-server"] + +# Search for "PONG" instead of relying on the exit status because of +# https://stackoverflow.com/a/71504657/815742. +HEALTHCHECK --start-period=1s CMD redis-cli ping | grep ^PONG$