From b45b2c0f7ec21ed10695ff942931f04262fbccd1 Mon Sep 17 00:00:00 2001
From: davidpanderson <davea@ssl.berkeley.edu>
Date: Tue, 3 Dec 2024 01:18:56 -0800
Subject: [PATCH] client: fix bug in Docker cleanup docker wrapper: pass
 cmdline args in an env var ARGS

---
 client/app_test.cpp                       | 2 +-
 client/cs_apps.cpp                        | 2 +-
 samples/docker_wrapper/docker_wrapper.cpp | 8 +++++---
 3 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/client/app_test.cpp b/client/app_test.cpp
index a273b4e176..490d4c267e 100644
--- a/client/app_test.cpp
+++ b/client/app_test.cpp
@@ -238,7 +238,7 @@ void CLIENT_STATE::app_test_init() {
     );
 #endif
 #ifdef APP_DOCKER_WRAPPER
-    wu->command_line = "--verbose";
+    wu->command_line = "--verbose --nsecs 20";
     wu->input_files.push_back(
         *make_file(proj, "infile", "in", INPUT_FILE, false)
     );
diff --git a/client/cs_apps.cpp b/client/cs_apps.cpp
index 7ff235d629..4d90cb88c0 100644
--- a/client/cs_apps.cpp
+++ b/client/cs_apps.cpp
@@ -422,7 +422,7 @@ void cleanup_docker(DOCKER_JOB_INFO &info, DOCKER_CONN &dc) {
             if (!docker_is_boinc_name(name.c_str())) continue;
             if (info.container_present(name)) continue;
             sprintf(cmd, "rm %s", name.c_str());
-            retval = dc.command(cmd, out);
+            retval = dc.command(cmd, out2);
             if (retval) {
                 fprintf(stderr, "Docker command failed: %s\n", cmd);
                 continue;
diff --git a/samples/docker_wrapper/docker_wrapper.cpp b/samples/docker_wrapper/docker_wrapper.cpp
index 456d68a048..2d304d28c8 100644
--- a/samples/docker_wrapper/docker_wrapper.cpp
+++ b/samples/docker_wrapper/docker_wrapper.cpp
@@ -291,16 +291,18 @@ int create_container() {
             );
         }
     }
-    sprintf(cmd, "create --name %s %s %s %s",
+    sprintf(cmd, "create --name %s %s %s",
         container_name,
-        slot_cmd, project_cmd,
-        image_name
+        slot_cmd, project_cmd
     );
     // add command-line args
+    strcat(cmd, " -e ARGS=\"");
     for (string arg: app_args) {
         strcat(cmd, " ");
         strcat(cmd, arg.c_str());
     }
+    strcat(cmd, "\" ");
+    strcat(cmd, image_name);
     retval = docker_conn.command(cmd, out);
     if (retval) return retval;
     if (error_output(out)) return -1;