用空格覆盖 docker 入口点

Fly*_*ley 4 docker docker-compose

我正在尝试使用docker run覆盖 docker 入口点。这适用于 docker-compose:

  myapp:
    build: .
    security_opt:
      - seccomp:unconfined
    entrypoint: dlv debug local/myorg/myapp -l 0.0.0.0:2345 --headless=true --log=true --server
    volumes:
Run Code Online (Sandbox Code Playgroud)

使用:

docker run --entrypoint "dlv debug local/myorg/myapp -l 0.0.0.0:2345 --headless=true --log=true --server"
Run Code Online (Sandbox Code Playgroud)

结果是:

exec: \"dlv debug local/myorg/myapp -l 0.0.0.0:2345 --headless=true --log=true --se
rver\": stat dlv debug local/myorg/myapp -l 0.0.0.0:2345 --headless=true --log=true --server: no such file or directory
Run Code Online (Sandbox Code Playgroud)

Von*_*onC 8

查看Adrian Oprea的文章“如何使用 docker run 正确覆盖 ENTRYPOINT ” 。

该文档明确指出 ENTRYPOINT 仅指定要在容器启动时运行的可执行文件。

这里有点违反直觉,如果您仔细查看文档页面上的示例命令,您会看到参数是在图像名称之后传递的。

在你的情况下:

 docker run --entrypoint dlv YOUR_IMAGE_NAME debug local/myorg/myapp -l 0.0.0.0:2345 --headless=true --log=true --server
                             ^^^^^^^^^^^^^^^
Run Code Online (Sandbox Code Playgroud)