这是.Net框架4.7.2控制台应用程序,构建平台x64,构建在发布模式。
操作系统Windows 10,Docker桌面2.1.0.5
在windows容器中运行时,程序挂起在File.ReadAllBytes,同时读取一个130 MB的二进制文件。此文件复制到程序集文件夹,也被复制到容器中。File.Exists验证了文件在那里。当直接在命令提示符外部容器中运行时,程序运行良好。
请帮帮忙。
Dockerfile
来自microsoft/dotnet-framework:4.7.2-runtime-windowsservercore-1803的
ARG源
WORKDIR /app
复制${source:-bin/Release}。
CMD "fileread-docker.exe“
代码
{
class Program
{
static void Main(string[] args)
{
var path = Path.Combine("folder", "a.abc");
Console.WriteLine($"Read file from {path}");
if (File.Exists(path))
{
Console.WriteLine($"File exist at {path}");
var file = File.ReadAllBytes(path);
Console.WriteLine($"File has been read at {path}");
}
else
{
Console.WriteLine($"File not exist at {path}");
}
}
}
}
'''发布于 2019-12-05 06:22:36
原来这是基本的形象问题。
它在我从
来自microsoft/dotnet-framework:4.7.2-runtime-windowsservercore-1803的
至
来自mcr.microsoft.com/dotnet/framework/runtime:4.8的
新的基础形象是荒谬的14 GB大。以前是6.4GB。
不管怎么说,这个新的基本图像就像预期的那样工作。以前的图像是从一个示例代码中复制的。
https://stackoverflow.com/questions/59187491
复制相似问题