“在 Windows Server Core 上为 .NET Framework 4.7.2 构建 Docker 映像时出错:‘无法注册层:没有这样的文件或目录’”

问题描述 投票:0回答:1

我已经为我的应用程序创建了一个 Dockerfile,但尽管尝试了各种运行时版本和配置,我仍然遇到其功能问题。无论运行时版本和类型如何。

任何人都可以提供解决此问题的指导或见解吗?我尝试了多个运行时版本和配置,但似乎都不起作用。

ERROR: failed to solve: failed to register layer: link /Files/Program Files/common files/Microsoft Shared/Ink/en-US/micaut.dll.mui /Files/Program Files (x86)/common files/Microsoft Shared/ink/en-US/micaut.dll.mui: no such file or directory

我的 Web 应用程序是使用 .NET Framework 4.7.2 构建的。尽管尝试在我的 Dockerfile 中指定这个确切的版本作为运行时,但我在构建过程中遇到了相同的持续错误。

我尝试了不同基础映像(例如 4.7 和 4.7.2)以及 windowsservercore-2016、2019 和 2022 的各种组合。但是,问题仍然存在。

根据 Docker Hub 文档,提到即使指定的运行时是 4.8 或 4.8.1,它仍然应该适应 4.7.2 版本,这与我正在使用的版本一致。尽管如此,错误仍然存在。

我的Docker版本是24.0.7,构建afdd53b。我正在寻求有关如何成功构建映像并随后将网站作为容器化服务运行的指导。

我已附上 dockerfile 以供参考。

任何解决此问题的帮助将不胜感激。谢谢!

Dockerfile:

# .NET Framework runtime image
FROM mcr.microsoft.com/dotnet/framework/runtime:4.8-windowsservercore-ltsc2019

# Setting working directory within the container
WORKDIR /webapp/

# Copying published application to the container
COPY . .

# Port of the application
EXPOSE 80

# Command to start the application
ENTRYPOINT ["C:\\ServiceMonitor.exe", "w3svc"]
asp.net .net dockerfile docker-container
1个回答
0
投票

您可能正在 Windows 上使用 Docker Desktop,当前活动的构建器是“desktop-linux”。这意味着您的容器无法访问 Windows 特定的库或功能(因此出现有关缺少 DLL 文件的错误)

在系统托盘中右键单击 Docker 桌面图标并选择“切换到 Windows 容器...”

© www.soinside.com 2019 - 2024. All rights reserved.