如何在运行时将命令行参数传递给 Docker 映像中的 dotnet dll?

2024-03-27

正在处理我的第一个 Docker 镜像。它是一个使用CMD启动的dotnet程序(Docker中只允许使用一个CMD)。我想在运行时向程序传递一个参数(API 密钥)。经过一番谷歌搜索,没有找到明确的答案。入口点似乎没有帮助。也许是ENV,但ENV似乎只适用于Docker。我的 Dockerfile:

FROM microsoft/dotnet
WORKDIR /app
COPY . /app
CMD [ "dotnet",  "/app/netcore/Somename.dll"]

Thanks


Docker 加入ENTRYPOINT and CMD进入单个命令行,如果两者都使用JSON符号,就像你的例子一样。

这是 JSON 表示法:CMD [ "dotnet", "/app/netcore/Somename.dll"]

这是 shell 表示法:CMD dotnet /app/netcore/Somename.dll

您需要知道的另一件事 - 写的是什么docker run ... <image_name> ... after- 当作是CMD.

所以,总结一下。

  1. 命令行的常量(不可变)部分,例如dotnet foo.dll你可以输入ENTRYPOINT.

  2. 变量部分,如附加参数,您提供docker run并可选择将默认值设置为CMD in Dockerfile

Example:

Dockerfile

...
ENTRYPOINT ["dotnet", "/app/netcore/Somename.dll"]
CMD ["--help"]

命令行1:

docker run ... <your image name> --environment=Staging --port=8080 

将会导致dotnet /app/netcore/Somename.dll --environment=Staging --port=8080

命令行2:

docker run ... <your image name>

将会导致dotnet /app/netcore/Somename.dll --help. --help来自 Dockerfile 中定义的默认值。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在运行时将命令行参数传递给 Docker 映像中的 dotnet dll? 的相关文章

随机推荐