【问题标题】:x64 C++ executable not running in nanoserver docker containerx64 C++ 可执行文件未在 nanoserver docker 容器中运行
【发布时间】: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


【解决方案1】:

这个问题的解决方案实际上是一个我显然看不到的 GUI 输出。修复产生 Popup 的错误后,一切正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-01
    • 2020-07-15
    • 2015-06-18
    相关资源
    最近更新 更多