DataDog / KubeHound

Kubernetes Attack Graph
https://kubehound.io
Apache License 2.0
705 stars 39 forks source link

storedb cannot pass healthcheck #143

Closed inemyrovsk closed 5 months ago

inemyrovsk commented 8 months ago

Describe the bug

docker-compose healthcheck trying to execute docker-healthcheck command: OCI runtime exec failed: exec failed: unable to start container process: exec: \"docker-healthcheck\": executable file not found in $PATH: unknown

image

To Reproduce ./kubehound backend-up

d0g0x01 commented 8 months ago

At first glance this looks to me like an issue with your docker runtime. Can you check that you have the latest version of docker/docker-compose? You need at least these https://github.com/DataDog/KubeHound#requirements

d0g0x01 commented 5 months ago

closing the issue as stale. Let us know if you have any further issues

kovacs-levent commented 3 months ago

I have the same issue, now at least I can solve it...

The issue is that even though I have docker-compose added as a CLI-plugin to docker, docker-healthcheck is not going to be included in there, especially not as a system path (since it's not system-wide installation of docker-compose, only a plugin added to me docker installation). The requirements could be a little bit clearer about how docker compose needs to be installed, if you ask me... docker compose alias is used in the makefile, and docker-healthcheck now, which I don't know why I don't have, but probably due to not having system-wide docker-compose installation.

kovacs-levent commented 3 months ago

I realized docker-healthcheck is a separate command copied into the docker image. It's not in the Path, which I have no idea how could it be issue of my runtime environment, but there's a separate issue... The mongo docker image uses 6.0.6 tag...

In 6.0, mongodb removed the legacy mongo CLI (https://www.mongodb.com/docs/manual/release-notes/6.0-compatibility/#legacy-mongo-shell-removed), so the healthcheck can't run, since the script is using outdated mongo CLI. It should use mongosh.