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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions