From 661e141ad117a1036c5aa3f322d858ff9abb8b85 Mon Sep 17 00:00:00 2001 From: mrcghil Date: Tue, 22 Apr 2025 19:43:05 +0100 Subject: [PATCH 1/4] Update lean_runner.py --- lean/components/docker/lean_runner.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lean/components/docker/lean_runner.py b/lean/components/docker/lean_runner.py index 3d704b17..dd965745 100644 --- a/lean/components/docker/lean_runner.py +++ b/lean/components/docker/lean_runner.py @@ -935,6 +935,10 @@ def parse_extra_docker_config(run_options: Dict[str, Any], extra_docker_config: # Add known additional run options from the extra docker config. # For now, only device_requests is supported if extra_docker_config is not None: + + if "environment" in extra_docker_config: + run_options["environment"] = [f"{item[0]}={item[1]}" for item in extra_docker_config["environment"]] + if "device_requests" in extra_docker_config: from docker.types import DeviceRequest run_options["device_requests"] = [DeviceRequest(**device_request) From 0755dd91204467b517eca463218494c2b7a8f392 Mon Sep 17 00:00:00 2001 From: mrcghil Date: Tue, 22 Apr 2025 20:33:00 +0100 Subject: [PATCH 2/4] Update lean_runner.py --- lean/components/docker/lean_runner.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lean/components/docker/lean_runner.py b/lean/components/docker/lean_runner.py index dd965745..71ffab3f 100644 --- a/lean/components/docker/lean_runner.py +++ b/lean/components/docker/lean_runner.py @@ -935,6 +935,9 @@ def parse_extra_docker_config(run_options: Dict[str, Any], extra_docker_config: # Add known additional run options from the extra docker config. # For now, only device_requests is supported if extra_docker_config is not None: + + if "name" in extra_docker_config: + run_options["name"] = extra_docker_config["name"] if "environment" in extra_docker_config: run_options["environment"] = [f"{item[0]}={item[1]}" for item in extra_docker_config["environment"]] From ac3709ff93ec601b7181982c772213c226581571 Mon Sep 17 00:00:00 2001 From: mrcghil Date: Sun, 4 May 2025 12:07:48 +0100 Subject: [PATCH 3/4] Extra env vars are added to existing ones. --- lean/components/docker/lean_runner.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lean/components/docker/lean_runner.py b/lean/components/docker/lean_runner.py index 71ffab3f..dc30d9de 100644 --- a/lean/components/docker/lean_runner.py +++ b/lean/components/docker/lean_runner.py @@ -940,7 +940,10 @@ def parse_extra_docker_config(run_options: Dict[str, Any], extra_docker_config: run_options["name"] = extra_docker_config["name"] if "environment" in extra_docker_config: - run_options["environment"] = [f"{item[0]}={item[1]}" for item in extra_docker_config["environment"]] + target = run_options.get("environment") + if not target: + target = run_options["environment"] = {} + target.update(extra_docker_config["environment"]) if "device_requests" in extra_docker_config: from docker.types import DeviceRequest From cc9cf3b3aaf9b19757741c6862ff85df6932e002 Mon Sep 17 00:00:00 2001 From: mrcghil Date: Sun, 4 May 2025 14:33:11 +0100 Subject: [PATCH 4/4] Support for multiple input option --- lean/components/docker/lean_runner.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lean/components/docker/lean_runner.py b/lean/components/docker/lean_runner.py index dc30d9de..b452a4b7 100644 --- a/lean/components/docker/lean_runner.py +++ b/lean/components/docker/lean_runner.py @@ -943,7 +943,14 @@ def parse_extra_docker_config(run_options: Dict[str, Any], extra_docker_config: target = run_options.get("environment") if not target: target = run_options["environment"] = {} - target.update(extra_docker_config["environment"]) + if isinstance(extra_docker_config["environment"], list): + target.update({item[0]: item[1] for item in [ + item if not isinstance(item, str) else (item.split("=")[0], item.split("=")[1]) for item in extra_docker_config["environment"] + ]}) + elif isinstance(extra_docker_config["environment"], dict): + target.update(extra_docker_config["environment"]) + else: + raise ValueError("Additional environment variables can be passed to the container in a dictionary, list of '{key}={value}' strings, or list of '(key, value)' tuples.") if "device_requests" in extra_docker_config: from docker.types import DeviceRequest