【发布时间】:2019-05-24 08:14:23
【问题描述】:
我正在尝试将 C++ 项目作为 .exe 文件发送到 docker nanoserver 容器中。我知道 nanoserver 只能运行 x64 可执行文件,所以我仔细检查了可执行文件是为 x64 构建的。
该项目不是基于 Visual C++ 并且不包含任何 .NET 库。
如果我在容器中运行 .exe,它只会静默退出而没有任何输出。有没有办法检查为什么 exe 不会在容器内运行?我可以通过 powershell 连接到容器。
我使用的dockerfile:
ROM mcr.microsoft.com/windows/nanoserver:10.0.14393.953
WORKDIR /app
COPY ./data /app
EXPOSE 3002
CMD ["./app.exe"]
【问题讨论】:
-
您可以远程访问 Windows 桌面吗?我想会弹出一些 GUI 错误对话框。
-
据我所知,由于 servercore 和 nanoserver 都不支持 GUI,因此无法通过 RDP 连接到 windows docker 容器?如果我错了,请纠正我。
-
我不知道。当一个 exe 像这样失败时,通常的错误是一个 GUI 对话框,告诉你它找不到 DLL。因此,请检查您的 exe 需要哪些 DLL。这取决于你用来构建它的编译器(mingw 或 Visual c++)。
-
您是否尝试过在二进制文件中包含 VC+ redist 目录?
标签: c++ docker nano-server