diff options
| author | Joseph Hunkeler <jhunkeler@gmail.com> | 2026-05-13 09:36:26 -0400 |
|---|---|---|
| committer | Joseph Hunkeler <jhunkeler@gmail.com> | 2026-05-13 09:36:26 -0400 |
| commit | 65485f41463d2587f35e5b2f85427789f9e26644 (patch) | |
| tree | 38c752cc8a224ba1948e24646d521c89d120ed7f /src/lib | |
| parent | d8ee8c27444a56bb98dd8bd67a019a1e9efbcc10 (diff) | |
| download | stasis-docker-debug.tar.gz | |
Add debug messages to docker functionsdocker-debug
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/core/docker.c | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/src/lib/core/docker.c b/src/lib/core/docker.c index 484f476..7d4a170 100644 --- a/src/lib/core/docker.c +++ b/src/lib/core/docker.c @@ -108,9 +108,13 @@ int docker_save(const char *image, const char *destdir, const char *compression_ } static int docker_exists() { - if (find_program("docker")) { + const char *prog = find_program("docker"); + if (prog) { + SYSDEBUG("Found in PATH: %s", prog); return true; } + const char *pathvar = getenv(PATH_ENV_VAR); + SYSDEBUG("Not found in PATH: %s", pathvar ? pathvar : "PATH UNDEFINED"); return false; } @@ -122,6 +126,7 @@ static char *docker_ident() { tempfile = xmkstemp(&fp, "w+"); if (!fp || !tempfile) { + SYSERROR("unable to open temporary file for writing"); return NULL; } @@ -136,7 +141,7 @@ static char *docker_ident() { if (!freopen(tempfile, "r", fp)) { remove(tempfile); - guard_free(tempfile); + SYSERROR("unable to open temporary file for reading"); return NULL; } @@ -144,6 +149,7 @@ static char *docker_ident() { fclose(fp); remove(tempfile); guard_free(tempfile); + SYSERROR("unable to read version from docker output"); return NULL; } @@ -151,20 +157,27 @@ static char *docker_ident() { remove(tempfile); guard_free(tempfile); + SYSDEBUG("detected version: %s", line); return strdup(line); } int docker_capable(struct DockerCapabilities *result) { + int quiet = LOG_LEVEL < LOG_LEVEL_DEBUG; char *version = NULL; memset(result, 0, sizeof(*result)); + int flags = 0; + if (quiet) { + flags |= STASIS_DOCKER_QUIET; + } + if (!docker_exists()) { // docker isn't available return false; } result->available = true; - if (docker_exec("ps", STASIS_DOCKER_QUIET)) { + if (docker_exec("ps", flags)) { // user cannot connect to the socket return false; } @@ -175,7 +188,7 @@ int docker_capable(struct DockerCapabilities *result) { } guard_free(version); - if (!docker_exec("buildx build --help", STASIS_DOCKER_QUIET)) { + if (!docker_exec("buildx build --help", flags)) { result->build |= STASIS_DOCKER_BUILD_X; } if (!docker_exec("build --help", STASIS_DOCKER_QUIET)) { @@ -212,6 +225,7 @@ int docker_validate_compression_program(char *prog) { goto invalid; } result = find_program(parts[0]) ? 0 : -1; + SYSDEBUG("result = %d", result); invalid: guard_array_free(parts); |
