gpt4 book ai didi

c# - 在 Docker 中获取文件

转载 作者:行者123 更新时间:2023-11-30 22:59:37 25 4
gpt4 key购买 nike

我有一个简单的 ASP.NET Core 应用程序,它从另一个项目访问文件。这是我的代码:

var currentDirectory = Directory.GetCurrentDirectory();
string directory = Path.GetFullPath(Path.Combine(currentDirectory, @"..\Data\SqlScripts"));
string[] fileArray = Directory.GetFiles(directory, "*.sql");
eturn fileArray.SingleOrDefault(f => f.Contains(filename));

如果我在 Linux 版 Docker 中运行应用程序,我会收到一个异常,提示找不到文件。当我调试时,currentDirectory 设置为 /app 而不是实际的物理目录。

如何在 Docker 中运行时也获取文件?

最佳答案

How can I get the files also while running in Docker?

docker 提供的大部分值(value)是通过在容器中创建隔离环境来实现的。这提供了使容器具有吸引力的所有好处(网络隔离、进程隔离等),但它确实意味着容器通常完全隔离(也有异常(exception),如卷安装)。因此,尝试修改容器以使其能够访问容器外部的内容可能是一个好主意(例如数据库),也可能是一个相当糟糕的主意(本地文件访问)。

您的文件包含什么?它们只是您应用程序的静态数据吗?如果是这样,我建议也将所有文件放入您的容器中。如果你能做到这一点,那么你的容器实际上就变成了一个独立的应用程序,它不仅可以在你的计算机上运行,​​而且可以在任何计算机上运行。

如果文件实际上在概念上与应用程序是分开的,那么它们需要以其他方式处理。例如,数据库需要是一个单独的容器。如果应用程序希望与文件服务器通信,那么您可能应该使用卷挂载。

考虑如何部署您的容器。它会是一个独立的东西吗?部署时它的依赖项是什么?

关于c# - 在 Docker 中获取文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52091084/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com