在Docker中运行基本的Qt应用程序

时间:2017-07-24 19:09:58

标签: c++ windows qt docker

我正在尝试在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输出。但我一无所获。有人可以指出缺少什么吗?

感谢。

1 个答案:

答案 0 :(得分:0)

我怀疑nanoserver图像仅支持x64应用程序,如果可能的话请将您的应用程序构建为x64并在其依赖性的纳米服务器中运行它。

如果无法构建为x64,则可以使用windowsservercore容器来运行x86应用程序。

您应该使用该应用程序复制依赖项程序集,否则它将无效。