Samee
November 10, 2024, 11:13am
5
I have traced the issue to these few lines of code in cwlrunner
.
In singularity.py
, we have the following:
def create_runtime(
self, env: MutableMapping[str, str], runtime_context: RuntimeContext
) -> tuple[list[str], Optional[str]]:
"""Return the Singularity runtime list of commands and options."""
any_path_okay = self.builder.get_requirement("DockerRequirement")[1] or False
runtime = [
"singularity",
"--quiet",
"exec",
"--contain",
"--ipc",
"--cleanenv",
and in docker.py
, we have the following:
def create_runtime(
self, env: MutableMapping[str, str], runtimeContext: RuntimeContext
) -> tuple[list[str], Optional[str]]:
any_path_okay = self.builder.get_requirement("DockerRequirement")[1] or False
user_space_docker_cmd = runtimeContext.user_space_docker_cmd
if user_space_docker_cmd:
if "udocker" in user_space_docker_cmd:
if runtimeContext.debug:
runtime = [user_space_docker_cmd, "run", "--nobanner"]
else:
runtime = [user_space_docker_cmd, "--quiet", "run", "--nobanner"]
else:
runtime = [user_space_docker_cmd, "run"]
else:
runtime = [self.docker_exec, "run", "-i"]
if runtimeContext.podman:
So, my question is what made the devs choose these two different way to launch the containers? Depending on whether the image has an entrypoint or not, it produces different outcome.