Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 如何让shell脚本指向.dll?(Docker入口点)_.net_Bash_Shell_Docker - Fatal编程技术网

.net 如何让shell脚本指向.dll?(Docker入口点)

.net 如何让shell脚本指向.dll?(Docker入口点),.net,bash,shell,docker,.net,Bash,Shell,Docker,我正在使用Docker部署.NET核心应用程序。默认情况下,应用程序DockerFile中的入口点类似于: ENTRYPOINT[“dotnet”,“applicationStartingPoint.dll”] 但是,在应用程序开始之前,我需要在容器中执行一个shell脚本。为此,CMD指定不适用于我,因此我需要一个shell脚本作为我的ENTRYPOINT,然后让它通过DLL启动应用程序 你能提供的任何见解都将大有裨益 您只需创建一个名为entrypoint.sh的脚本即可。在这个脚本中,您可

我正在使用Docker部署.NET核心应用程序。默认情况下,应用程序DockerFile中的
入口点类似于:

ENTRYPOINT[“dotnet”,“applicationStartingPoint.dll”]

但是,在应用程序开始之前,我需要在容器中执行一个shell脚本。为此,
CMD
指定不适用于我,因此我需要一个shell脚本作为我的
ENTRYPOINT
,然后让它通过DLL启动应用程序


你能提供的任何见解都将大有裨益

您只需创建一个名为
entrypoint.sh
的脚本即可。在这个脚本中,您可以做任何您想做的事情,然后调用命令来启动应用程序。因此:

入口点.sh

#!/usr/bin/env sh

... my crazy pre-script

dotnet applicationStartingPoint.dll
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]
Dockerfile

#!/usr/bin/env sh

... my crazy pre-script

dotnet applicationStartingPoint.dll
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]

更新:我已向Dockerfile中添加了如何在构建文件时将文件复制到容器中,并授予必要的权限。

您只需创建一个名为
entrypoint.sh的脚本即可。在这个脚本中,您可以做任何您想做的事情,然后调用命令来启动应用程序。因此:

入口点.sh

#!/usr/bin/env sh

... my crazy pre-script

dotnet applicationStartingPoint.dll
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]
Dockerfile

#!/usr/bin/env sh

... my crazy pre-script

dotnet applicationStartingPoint.dll
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]

更新:我已向Dockerfile中添加了如何在构建文件时将文件复制到容器中,以及如何授予必要的权限。

感谢您的回复。我尝试了这一点,但我的容器在脚本执行后一直退出,这向我表明脚本中的“dotnet appstartpoint.dll”行不起作用。这正是我想要完成的,如果我能让命令生效,我会非常高兴。嗯,这能更好地解释为什么命令不起作用吗?您可以通过使用:docker run-it--entrypoint=“/bin/sh”my_image运行容器进入内部来调试它。然后,调试您的命令,看看您缺少了什么使其正常工作。请特别检查权限以及是否所有文件都已正确复制到容器中。很抱歉,我已修复了进入容器的命令:docker run-it--entrypoint=“/bin/sh”我的图片另一件有趣的事情是:CMD命令在容器启动后运行。您还可以在构建容器时通过在Dockerfile上使用run命令来运行命令。我做到了!我真是太感谢你了。你的帮助确实帮助我解决了这个问题。我学到了很多。非常感谢。谢谢你的回复。我尝试了这一点,但我的容器在脚本执行后一直退出,这向我表明脚本中的“dotnet appstartpoint.dll”行不起作用。这正是我想要完成的,如果我能让命令生效,我会非常高兴。嗯,这能更好地解释为什么命令不起作用吗?您可以通过使用:docker run-it--entrypoint=“/bin/sh”my_image运行容器进入内部来调试它。然后,调试您的命令,看看您缺少了什么使其正常工作。请特别检查权限以及是否所有文件都已正确复制到容器中。很抱歉,我已修复了进入容器的命令:docker run-it--entrypoint=“/bin/sh”我的图片另一件有趣的事情是:CMD命令在容器启动后运行。您还可以在构建容器时通过在Dockerfile上使用run命令来运行命令。我做到了!我真是太感谢你了。你的帮助确实帮助我解决了这个问题。我学到了很多。非常感谢。