* Add a health check for the daemon and RPC endpoint SeafileClient.is_healthy() checks seaf-cli status and makes a real RPC call (get_repo_list) against the daemon's Unix socket - neither needs the Seafile server, so it works without a token or password. healthcheck.py exposes it as a plain script for Docker's HEALTHCHECK. Each check is a fresh process spawned by the Docker daemon as root, unlike the long-lived start.py process, so it drops to the seafile user with runuser before touching the RPC socket - the one place that mechanism still belongs after the earlier in-process privilege drop. Verified against the real image: healthcheck.py exits 0 once the real daemon is up (through the actual main() entrypoint, not a test fixture) and nonzero when no daemon has been started. * Assert the return value in the daemon-down health check test Copilot review: the test checked the RPC call was skipped but not what is_healthy() actually returned in that case. --------- Co-authored-by: Maxim Shulga <maxim.shulga@alludo.com>
12 lines
247 B
Plaintext
12 lines
247 B
Plaintext
# Only requirements.txt, dsc/, start.py, and healthcheck.py belong in the
|
|
# build context.
|
|
*
|
|
!requirements.txt
|
|
!start.py
|
|
!healthcheck.py
|
|
!dsc/
|
|
|
|
# Keep local artifacts out even though dsc/ is re-included above.
|
|
dsc/**/__pycache__/
|
|
dsc/**/*.py[cod]
|