我正在尝试在docker for windows中运行一个基本的控制台应用程序(在Qt 中开发)。开发环境是windows 10,编译VC2015,32bit Application。
在尝试移植实际应用程序之前,它是hello world并且想法是找到问题。
代码是最简单的c ++代码:
#include <QCoreApplication>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
std::cout<<"Hello world";
return a.exec();
}
Dockerfile是:
# Comment:
#It needs a Microsoft environment to run
FROM microsoft/nanoserver:latest
#Create a folder inside the home folder in the Container Operating System
RUN mkdir -p C:\HelloWorld
#Copy the excutable from this folder to the folder inside the Container
Operating System.
COPY . /HelloWorld/
#Run the application inside the container operating system.
CMD ["C:\\HelloWorld\\docker_HelloWorld.exe"]
我期望的最终结果是“Hello world”的控制台/ shell输出。但我一无所获。有人可以指出缺少什么吗?
感谢。
答案 0 :(得分:0)
我怀疑nanoserver图像仅支持x64应用程序,如果可能的话请将您的应用程序构建为x64并在其依赖性的纳米服务器中运行它。
如果无法构建为x64,则可以使用windowsservercore容器来运行x86应用程序。
您应该使用该应用程序复制依赖项程序集,否则它将无效。