在Docker中获取文件

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

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

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));

如果我在Docker for Linux中运行应用程序,我会得到一个例外,说明找不到文件。当我调试时,currentDirectory被设置为/app而不是实际的物理目录。

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

c# file docker asp.net-core .net-core
1个回答
1
投票

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

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

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

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

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

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