gpt4 book ai didi

docker - Visual Studio Dockerfile EntryPoint覆盖解释了吗?

转载 作者:行者123 更新时间:2023-12-02 18:21:11 24 4
gpt4 key购买 nike

我是Docker的新手,试图理解,但我注意到Visual Studio在幕后做了很多“魔术”。当您调试带有Docker支持的ASP.NET Core应用程序时,我设法弄清了所有关于VS使用docker运行命令的问题。

docker run 
-dt
-v "C:\Users\jnhaf\vsdbg\vs2017u5:/remote_debugger:rw"
-v "D:\ProtoTypes\WebAppDockerOrNot\WebAppDockerOrNot:/app"
-v "C:\Users\jnhaf\AppData\Roaming\ASP.NET\Https:/root/.aspnet/https:ro"
-v "C:\Users\jnhaf\AppData\Roaming\Microsoft\UserSecrets:/root/.microsoft/usersecrets:ro"
-v "C:\Users\jnhaf\.nuget\packages\:/root/.nuget/fallbackpackages2"
-v "C:\Program Files\dotnet\sdk\NuGetFallbackFolder:/root/.nuget/fallbackpackages"
-e "DOTNET_USE_POLLING_FILE_WATCHER=1"
-e "ASPNETCORE_ENVIRONMENT=Development"
-e "ASPNETCORE_URLS=https://+:443;http://+:80"
-e "ASPNETCORE_HTTPS_PORT=44328"
-e "NUGET_PACKAGES=/root/.nuget/fallbackpackages2"
-e "NUGET_FALLBACK_PACKAGES=/root/.nuget/fallbackpackages;/root/.nuget/fallbackpackages2"
-p 4800:80
-p 44328:443
--entrypoint tail webappdockerornot:dev -f /dev/null

最后一个参数 --entrypoint tail webappdockerornot:dev -f /dev/null是使我感到困惑的参数。我知道VS覆盖了Dockerfile中的入口点设置,但是我不了解也无法在线找到的是 tail webappdockerornot:dev-f /dev/null。我发现 webappdockerornot:dev是docker镜像,但有人可以解释此参数的工作原理或提供解释该参数的链接。

最佳答案

我们可以以不同的方式分解命令行

docker run \
... some other arguments ... \
--entrypoint tail \
webappdockerornot:dev \
-f /dev/null

并将其与一般形式匹配
docker run [OPTIONS] [IMAGENAME:TAG] [CMD]

因此, --entrypoint tail选项将入口点设置为 tail,而“命令”部分是 -f /dev/null。当Docker实际启动容器时,它将命令作为附加参数传递给入口点。最后,这的净效果是

Ignore what the Dockerfile said to do; after setting up the container runtime environment, run tail -f /dev/null instead.



反过来,这是启动不执行任何操作但仍保持运行状态的容器的常用方法。然后,您可以使用 docker exec和类似的面向调试的工具在容器内进行操作。

关于docker - Visual Studio Dockerfile EntryPoint覆盖解释了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52247655/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com