Repository navigation
Open
Description
There is an urgent error that crashes openproject docker compose deployments:
There is no curl anymore in the app container image, so the health checks fail and autoheal is restarting the web container, but they don't come up again.
web:
...
labels:
- autoheal=true
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080${OPENPROJECT_RAILS__RELATIVE__URL__ROOT:-}/health_checks/default"]
interval: 10s
timeout: 3s
retries: 3
start_period: 30sroot@docker1:/docker/openproject# docker inspect openproject-web-1 --format '{{json .State.Health}}'
{"Status":"unhealthy","FailingStreak":79,"Log":[{"Start":"2026-03-11T15:36:43.524098518+01:00","End":"2026-03-11T15:36:43.60891546+01:00","ExitCode":-1,"Output":"OCI runtime exec failed: exec failed: unable to start container process: exec: \"curl\": executable file not found in $PATH"},{"Start":"2026-03-11T15:36:53.610644642+01:00","End":"2026-03-11T15:36:53.721577561+01:00","ExitCode":-1,"Output":"OCI runtime exec failed: exec failed: unable to start container process: exec: \"curl\": executable file not found in $PATH"},{"Start":"2026-03-11T15:37:03.723026179+01:00","End":"2026-03-11T15:37:03.847926613+01:00","ExitCode":-1,"Output":"OCI runtime exec failed: exec failed: unable to start container process: exec: \"curl\": executable file not found in $PATH"},{"Start":"2026-03-11T15:37:13.850434569+01:00","End":"2026-03-11T15:37:14.035559271+01:00","ExitCode":-1,"Output":"OCI runtime exec failed: exec failed: unable to start container process: exec: \"curl\": executable file not found in $PATH"},{"Start":"2026-03-11T15:37:24.036825754+01:00","End":"2026-03-11T15:37:24.19010835+01:00","ExitCode":-1,"Output":"OCI runtime exec failed: exec failed: unable to start container process: exec: \"curl\": executable file not found in $PATH"}]}
root@docker1:/docker/openproject# docker exec -it openproject-web-1 bash
app@openproject:/app$ curl
bash: curl: command not foundI've fixed it by commenting out the "autoheal=true", but we need curl in the container.
Reacted by Benedikt Wildenhain, Sebastian Helbig, manumitted and uhgw-it
Reacted by gohrner
Metadata
Metadata
Assignees
Labels
No labels
Activity
[-]Healthchecks for web fails![/-][+]Healthcheck for web fails![/+][-]Healthcheck for web fails![/-][+]Healthcheck for web container fails![/+]CodeDok commentedon Mar 11, 2026
One possible workaround currently is using wget:
bwildenhain commentedon Mar 12, 2026
No, that doesn't work, as the container contains neither curl nor wget.
CodeDok commentedon Mar 12, 2026
Might depend on the tag you use. Im using the "full" version without slim and it works fine. I searched in /usr/bin/ for available options first:
bwildenhain commentedon Mar 12, 2026
Okay, I am using slim, which has at least Perl (without LWP), so I used the following script to check instead (see attachment, also includes changes for postgres17)
docker-compose.override.yml.txt
ukberry commentedon Mar 12, 2026
Similar to the approach provided by @bwildenhain I modified the test command to get this working on my local install. I chose ruby since the container is guaranteed to have ruby installed.
I have provided a pull request to my changes if it helps progress a fix.
DuaelFr commentedon Aug 5, 2026
It seems that the 17-slim images now have curl 🤷