aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2026-05-13 09:36:26 -0400
committerJoseph Hunkeler <jhunkeler@gmail.com>2026-05-13 09:36:26 -0400
commit65485f41463d2587f35e5b2f85427789f9e26644 (patch)
tree38c752cc8a224ba1948e24646d521c89d120ed7f /src
parentd8ee8c27444a56bb98dd8bd67a019a1e9efbcc10 (diff)
downloadstasis-65485f41463d2587f35e5b2f85427789f9e26644.tar.gz
Add debug messages to docker functionsdocker-debug
Diffstat (limited to 'src')
-rw-r--r--src/lib/core/docker.c22
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);