无法在 Docker 中为 Windows 运行 容器:"System cannot find the file specified"
Cannot run container in Docker for Windows: "System cannot find the file specified"
我有一个简单的 C# 控制台应用程序:
static void Main(string[] args)
{
Console.WriteLine("TESTING!");
Console.ReadLine();
}
和一个 DockerFile:
FROM microsoft/windowsservercore
WORKDIR /app
COPY /bin/Debug .
ENTRYPOINT ["dotnet","TestApp.exe"]
我构建了一个图像:
docker build -f dockerfile -t testapp .
然后我尝试 运行 它:
docker run testapp
这给出了这个错误:
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]}.
是TestApp.exe找不到吗?
首先发布控制台应用程序。
使用下面的 docker 文件 -
FROM microsoft/windowsservercore
ADD publish/ /
ENTRYPOINT TestApp.exe
Dockerfile 的第一行使用 FROM 指令指定基础镜像。接下来,在文件中添加将应用程序资产从发布文件夹复制到容器的根文件夹;设置图像的 ENTRYPOINT 声明这是将在容器启动时 运行 的命令或应用程序。
我有一个简单的 C# 控制台应用程序:
static void Main(string[] args)
{
Console.WriteLine("TESTING!");
Console.ReadLine();
}
和一个 DockerFile:
FROM microsoft/windowsservercore
WORKDIR /app
COPY /bin/Debug .
ENTRYPOINT ["dotnet","TestApp.exe"]
我构建了一个图像:
docker build -f dockerfile -t testapp .
然后我尝试 运行 它:
docker run testapp
这给出了这个错误:
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]}.
是TestApp.exe找不到吗?
首先发布控制台应用程序。 使用下面的 docker 文件 -
FROM microsoft/windowsservercore
ADD publish/ /
ENTRYPOINT TestApp.exe
Dockerfile 的第一行使用 FROM 指令指定基础镜像。接下来,在文件中添加将应用程序资产从发布文件夹复制到容器的根文件夹;设置图像的 ENTRYPOINT 声明这是将在容器启动时 运行 的命令或应用程序。