.net - 在 docker 本地运行 .exe
问题描述
我有一个非常小的 .net 控制台应用程序,
static void Main(string[] args)
{
Console.WriteLine("This is testing!");
Console.ReadLine();
}
路径结构是这样的 C:\Kubernetes\src\Sample\bin\Release\debug
我的项目,dockerfile和sln文件都在sample文件夹里面
我的 dockerfile 看起来像这样,
FROM mcr.microsoft.com/windows/servercore:ltsc2016
ADD . /bin/Release
ENTRYPOINT Sample.exe
我使用以下命令成功构建了映像,
docker build . -t samplekube:local
当我尝试在本地运行图像时
docker run samplekube:local
我收到以下错误,
'Sample.exe' is not recognized as an internal or external command,
operable program or batch file.
如何在本地测试 docker 中包含 .exe 的图像?
谢谢
解决方案
嗨,我不熟悉 .net,但 Execution 抱怨找不到 Sample.exe。您将文件放在 Dockerfile 的 /bin/Release 目录中。所以有这行会更有意义:ENTRYPOINT /bin/Release/Sample.exe
即使基本映像是 Windows 服务器,目录路径也包含类似 unix 的目录路径,所以我认为错误一定来自我提到的那些事情之一。
我建议你在入口点执行shell进入容器并找到文件的位置
推荐阅读
- makefile - 当第二个不在第一个目录中时,包含第三个生成文件,其路径相对于第二个
- hyperledger-fabric - Hyperledger Fabric:向对等方发送提案时超时
- authentication - 服务器如何验证基于会话的 cookie 是真实的?
- sql - 如何使用内部连接更新行
- c - 为什么我的 if 没有捕捉到这个空指针取消引用?
- javascript - 无法选择多选项目。jQuery
- reactjs - 我如何测试函数(getPermissions)并在未涵盖分支和语句的情况下做出反应
- mongodb-query - 模糊的 mongoDB 查询,匹配所有内容
- python - 如何使用 selenium 获取从 python 上的 facebook 联系人收到的最新消息?
- javascript - 如何使用 React Native 获得良好的本地时间?