Skip to content

bug: string interpolation of --docker-run-flag is incorrect when running shell-less #6

@Interpause

Description

@Interpause
    args=[
        "run",
        "--no-sync",
        "kilntainers",
        "--backend",
        "docker",
        "--transport",
        "stdio",
        "--timeout",
        ENV["EXEC_TIMEOUT"],
        "--output-limit",
        ENV["OUTPUT_LIMIT"],
        "--shell",
        "/usr/bin/bash",
        "--network",
        "--image",
        ENV["DOCKER_IMAGE"],
        "--cpu",
        ENV["CPU_LIMIT"],
        "--memory",
        ENV["MEM_LIMIT"],
        "--tool-instruction-override",
        ENV["DOCKER_IMAGE_DESC"],
        "--docker-run-flag",
        r"'-v'",
        "--docker-run-flag",
        f"{ENV['DOCKER_MOUNT']}:/mnt/data",
    ],

--volume=... results in "kilntainers: error: argument --docker-run-flag: expected one argument". '--volume=...' or "--volume=..." results the quotes ending up in the docker run like:

Docker command failed (exit 125): docker run -d --rm --label kilntainers=true --cpus 4 --memory 4096m '--volume=.../data/sandbox:/mnt/data' quay.io/jupyter/scipy-notebook:latest tail -f /dev/null
docker: invalid reference format
Run 'docker run --help' for more information

Doing --volume ... somehow also gets it treated as a flag on its own:

Docker command failed (exit 125): docker run -d --rm --label kilntainers=true --cpus 4 --memory 4096m --volume .../data/sandbox:/mnt/data quay.io/jupyter/scipy-notebook:latest tail -f /dev/null
unknown flag: --volume .../data/sandbox:/mnt/data
Usage:  docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
Run 'docker run --help' for more information

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions