繁体   English   中英

将ENTRYPOINT和CMD结合到Dockerfile中以不同的可执行文件为目标

[英]Combining ENTRYPOINT and CMD in Dockerfile targeting different executables

我有一个定义dotnet ENTRYPOINT的Dockerfile。 另外,我有一个配置为在supervisor用户下运行的程序(带有supervisord.conf定义)。 当容器运行时,我需要启动Supervisor服务,还将几个args传递给ENTRYPOINT可执行文件。 我无法将ENTRYPOINT和CMD结合使用,因为CMD参数与ENTRYPOINT无关。 我还想保留ENTRYPOINT以显式地使容器包装dotnet exec。 关于如何实现这一目标有什么想法?

我知道我的方案完全可以使用,因为我可以附加到正在运行的容器,然后启动supervisor服务。

FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base
…
FROM base AS final    
ENTRYPOINT ["dotnet", "BLAH.dll"]
CMD ["service", "supervisor", "start"]

看起来您想同时运行两个不同的服务。
您无法通过Dockerfile实现这一目标。

我建议您编写一个脚本来运行这两个服务。
并在ENTRYPOINTCMDENTRYPOINT中使用该脚本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM