Docker health check targeting anothern container?

350 views Asked by At

I have a docker container service-1 that does not support curl or wget or ping. The container does start up a service which is available on localhost:8080 when ready.

As I cannot write a curl health check for this container (due missing command), I need a nother solution to know, when this container is ready.

My idea was to use another container in the same network, which implements a healthcheck like so:

curl --fail service-1:8080 || exit 1

Sadly this seems not work. Can I execute a health check on container A that relies on another container?

1

There are 1 answers

0
Herr Derb On BEST ANSWER

Finally I found this cheeky hack:

 test: |
        exec 3<>/dev/tcp/localhost/8080
        echo -e "GET /ready HTTP/1.1\nhost: localhost:8080\n" >&3
        timeout --preserve-status 1 cat <&3 | grep -m 1 status | grep -m 1 UP
        ERROR=$?
        exec 3<&-
        exec 3>&-
        exit $ERROR