正在处理我的第一个 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
.
所以,总结一下。
命令行的常量(不可变)部分,例如dotnet foo.dll
你可以输入ENTRYPOINT
.
变量部分,如附加参数,您提供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(使用前将#替换为@)