如何将参数传递给 docker run 入口点?

Ian*_*Ian 6 command-line docker

>docker run --entrypoint "dotnet test" api-tests
Run Code Online (Sandbox Code Playgroud)

这表示它无法在路径变量中找到可执行文件。

>docker run --entrypoint "dotnet" api-tests
Run Code Online (Sandbox Code Playgroud)

这有效,但没有做任何事情。

如何传递多个参数?

例如dotnet test UnitTests.csproj --logger trx;LogFileName=/tests/test-results.trx

Han*_*ian 10

图像名称后面的任何内容都会替换任何定义的 CMD 并作为参数发送到入口点。

因此,如果您定义了一个入口点,并且想要将“dotnet test”传递给该入口点,则可以这样做

docker run api-tests dotnet test
Run Code Online (Sandbox Code Playgroud)

一个例子是 alpine/curl 图像,它使用您传递的参数运行curl。

docker run --rm alpine/curl -s https://www.google.com/
Run Code Online (Sandbox Code Playgroud)

将获取 Google 的首页。参数只是-s https://www.google.com/. 该图像curl作为入口点,因此您不需要指定它。