-
-
Notifications
You must be signed in to change notification settings - Fork 227
Description
TLDR: Healthcheck always fails, seems the script cannot be called
-
Is this urgent: No
-
DNS provider(s) you use: Cloudflare
-
Program version:
Running version latest built on 2024-12-24T09:20:36.130Z (commit 78f3061)
-
What are you using to run the container: docker-compose
-
Extra information (optional)
The healthcheck won't work for me at all. I've seen similar issues here, but none of them had solutions that worked for me. I did have to change the healthcheck address, as another container I have is already using port 9999
- HEALTH_SERVER_ADDRESS=127.0.0.1:9898
If left with the default healthcheck settings (nothing in my docker compose), it just times out:
"ExitCode": -1, "Output": "Health check exceeded timeout (5s)"
If I extend the timeout, like so:
healthcheck:
test: ["CMD", "/updater/app", "healthcheck"]
interval: 60s
timeout: 45s
retries: 2
I get this error:
"Output": "OCI runtime exec failed: exec failed: unable to start container process: exec: \"/updater/app\": stat /updater/app: no such file or directory: unknown"
Sure enough, even running the healthcheck manually with this command:
docker exec ddns-updater /updater/app healthcheck
Gives that same error. I can't SH into the container to check if the /updater/app directory exists either...
Logs:
2025-08-03T17:39:41-07:00 INFO Settings summary:
├── HTTP client
| └── Timeout: 10s
├── Update
| ├── Period: 5m0s
| └── Cooldown: 1m0s
├── Public IP fetching
| ├── HTTP enabled: yes
| ├── HTTP IP providers
| | └── all
| ├── HTTP IPv4 providers
| | └── all
| ├── HTTP IPv6 providers
| | └── all
| ├── DNS enabled: yes
| ├── DNS timeout: 3s
| └── DNS over TLS providers
| └── all
├── Resolver: use Go default resolver
├── Server
| ├── Listening address: :8000
| └── Root URL: /
├── Health
| └── Server listening address: 127.0.0.1:9898
├── Paths
| ├── Data directory: /updater/data
| ├── Config file: /updater/data/config.json
| └── Umask: system default
├── Backup: disabled
└── Logger
├── Level: info
└── Caller: hidden
2025-08-03T17:39:41-07:00 INFO reading JSON config from file /updater/data/config.json
2025-08-03T17:39:41-07:00 INFO Found single setting to update record
2025-08-03T17:39:46-07:00 INFO Reading history from database: domain owner @ ipv4
2025-08-03T17:39:46-07:00 INFO [healthcheck server] health http server listening on 127.0.0.1:9898
2025-08-03T17:39:46-07:00 INFO [http server] http server listening on [::]:8000
2025-08-03T17:39:46-07:00 INFO [backup] disabled
2025-08-03T17:39:51-07:00 INFO obtaining ipv4 address succeeded after 1 failed try
2025-08-03T17:39:56-07:00 ERROR setting initial up to date status: opening file: open /updater/data/updates.json: permission denied
^ The last line is a bit alarming. I get that whether I create the file in advance or not.
Configuration file (remove your credentials!):
{
"settings": [
{
"provider": "cloudflare",
"zone_identifier": "",
"domain": "",
"ttl": 600,
"token": "",
"ip_version": "ipv4",
"ipv6_suffix": ""
}
]
}
Host OS:
Ubuntu Server