无法在Windows的Docker中运行容器:“系统找不到指定的文件”

Stu*_*ang 6 c# docker docker-for-windows

我有一个简单的C#控制台应用程序:

static void Main(string[] args)
{
    Console.WriteLine("TESTING!");
    Console.ReadLine();
}
Run Code Online (Sandbox Code Playgroud)

和一个DockerFile:

FROM microsoft/windowsservercore
WORKDIR /app
COPY /bin/Debug .
ENTRYPOINT ["dotnet","TestApp.exe"]
Run Code Online (Sandbox Code Playgroud)

我建立了一个图像:

docker build -f dockerfile -t testapp .
Run Code Online (Sandbox Code Playgroud)

然后,我尝试运行它:

docker run testapp
Run Code Online (Sandbox Code Playgroud)

出现此错误:

C:\Program Files\Docker\Docker\Resources\bin\docker.exe: 
Error response from daemon: container a728cbed9188640df1d6e2f5c4d75f3ae3faef6162ec978575f9a587ed6546eb encountered an error during CreateProcess: 
failure in a Windows system call: 
The system cannot find the file specified. (0x2) extra info:
{"CommandLine":"dotnet TestApp.exe","WorkingDirectory":"C:\\app","CreateStdInPipe":true,"CreateStdOutPipe":true,"CreateStdErrPipe":true,"ConsoleSize":[0,0]}.
Run Code Online (Sandbox Code Playgroud)

是否找不到TestApp.exe?

N. *_*tal 2

首先发布控制台应用程序。使用下面的 docker 文件 -

FROM microsoft/windowsservercore
ADD publish/ /
ENTRYPOINT TestApp.exe
Run Code Online (Sandbox Code Playgroud)

Dockerfile 中的第一行使用 FROM 指令指定基础镜像。接下来,文件中的 ADD 将应用程序资产从发布文件夹复制到容器的根文件夹,最后;设置映像的 ENTRYPOINT 表明这是容器启动时将运行的命令或应用程序。