如何解决在 docker 容器中获取依赖程序集的版本
背景
我有一个通过 Azure DevOps 管道构建的 ASP.NET Core API 的 docker 映像。因此,容器启动时运行的命令是 dotnet
以启动 API。该 API 无法加载,因为图像构建不正确;随后主机终止,容器停止。
具体来说,在构建过程中(从错误的 NuGet 包中)将依赖项(.NET 程序集)复制到本地 /app
文件夹中。此问题是由构建管道中的某种更改引起的。
[15:09:43 INF] 程序启动成功。
[15:09:44 FTL] 主机意外终止 System.IO.FileNotFoundException:无法加载文件或程序集“Elided.For.Security,版本=1.0.6.0,Culture=neutral,PublicKeyToken=null”。系统找不到指定的文件。
问题
我想做的是使用备用命令启动容器。目前,我启动容器的所有方式,下面列举的,都是从 docker 文件中配置的 CMD 开始的,它试图启动 API,最终崩溃,关闭容器。
docker run IMAGEID
docker run -it IMAGEID bash
-
docker run IMAGEID bash
(取自此answer)
允许我访问容器以便我可以拉出 DLL 并检查它的程序集版本以便我可以查看使用了哪个 DLL 的正确命令行是什么(如果有的话)?有没有另一种方法可以在不覆盖运行的情况下获取 DLL?或者,有什么方法可以延迟容器的崩溃,以便我可以“进入那里”?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。