问题标签 [mounted-volumes]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
215 浏览

kubernetes - 如何为多租户环境使用动态持久卷配置

我为我们的学生开发了一个 Web 应用程序,现在我想在 kubernetes 容器环境中运行它。每个用户(可以被视为租户)都有自己的应用程序环境(1:1 关系)。应用程序环境由 2 个 pod(1x 网络服务器,1x 数据库)组成,由部署和服务定义。

我正在使用 kubernetes v1.17.2 并且我想使用动态 PersistentVolumeClaims 的功能以及在删除和重新创建新 pod 之间保留特定用户(租户)数据的可能性(例如更新到新的应用程序版本或硬件重启后)。

我考虑过在创建 pod 时使用环境变量(例如 user-1、user-2、user-x...),并使用这些信息来允许重用动态创建的 PersistentVolume。

是否有任何最佳实践或概念如何实现?

最好的问候肖恩

0 投票
0 回答
32 浏览

java - 复制文件后如何释放docker的内存?

我们正在开发性能非常重要的 java 应用程序。它处理大量文件并创建大量文件作为输出。因此,为了释放内存,我们在批量文件(例如 15 个文件)之后将数据临时保存到磁盘。如果需要,这些临时保存的文件可以稍后由应用程序加载。我们也在对我们的应用程序进行 docker 化,但我们遇到了问题。Docker 有自己的文件系统。因此,即使我们将文件保存到磁盘后,docker 也会在内存中保留一些内容,即将其自己文件系统中的文件与磁盘上保存的文件连接起来。我们使用绑定挂载。因此,我们的 java 应用程序能够处理数千个文件,但是 dockerized 版本在 75 个文件后速度变慢,并且在大约 150 个文件后抛出内存不足异常。复制文件后有没有办法释放docker的内存?

0 投票
0 回答
400 浏览

vue.js - VUE - 检查所有组件是否已加载的全局挂钩

我想在每次加载新页面时运行一个函数,例如在安装视图(home.vue,contact.vue,...)时。

我不想从挂载的钩子上对每个视图调用这个函数。有没有办法检查,也许从 app.js,如果所有组件都已安装?像this.allMounted --> true/false:)

0 投票
0 回答
66 浏览

docker - 是否可以使用单个 docker 卷映射到两个不同的目录?

我正在使用 VS Code、远程开发容器和 Docker 在容器中创建开发环境。一切正常,但我确实注意到,在处理不同的项目时,诸如此类的事情yarn install意味着每次都必须下载 npm 模块。当然,一旦容器映像执行此操作,它们就会存储在缓存中,特别是/usr/local/share/.cache/yarn/v6.

当我尝试将该文件夹挂载到主机上yarn install时,会经常失败,说明由于网络连接不良(连接很好)而无法下载包。所以,我创建了一个卷,一切都很好。

我遇到的问题是我还想共享卷中的其他文件夹,以便多个容器对 NuGet 包等内容使用相同的缓存。我希望以某种方式让我的音量看起来像这样:

这似乎不是卷在 docker 中的工作方式,所有文件都混合在卷的根目录中(没有子目录)。当然,我不能简单地映射整个 /usr 文件夹或类似的东西,这太疯狂了。

在我开始为每个缓存和配置文件创建不同的卷之前,有没有办法使用单个共享卷来做到这一点?

0 投票
0 回答
141 浏览

php - 对于可写挂载,php is_writable 总是返回 false

要将我的应用程序转换为 laravel,我尝试创建一个新应用程序。我正在使用网络挂载来访问 linux 服务器上的文件。没有 ssh 访问。我的机器是Windows。服务器可作为网络挂载访问。在已安装的驱动器上创建 laravel-6 应用程序时,出现此错误:

在所有目录中我都可以读写。经过一些测试,我认识到is_writable驱动器上的文件总是返回 false (在 Windows 上)。这很愚蠢,因为我可以在驱动器上创建和修改文件(包括缓存目录)。我也在cygwin中尝试过。结果相同。

phpfileperms方法返回格式:40777. 所以我想它应该是可读可写的。php版本:7.3.9

如何配置我的 windows php 环境以将文件视为可写文件?

0 投票
1 回答
97 浏览

macos - 将项目代码从 Ubuntu 主机共享到 macOS 来宾时,错误源文件不是有效的 UTF-8

我有一个 Ubuntu 主机和一个 vmware macOS 来宾。当我从 Ubuntu 共享项目代码时,代码无法在 macOS 中构建,因为 error source file is not valid UTF-8。我们可以使用任何 Qt/QML 示例来重现此错误。我认为这是因为“行尾”、“文件尾”的不同。你能告诉我qmake中是否有任何选项/标志告诉qmake或clang知道这一点吗?谢谢!

附加信息:我找到了原因,但没有找到解决方案。这是因为 vmware 共享文件夹在 macosx guest 位于/Volumes/VMware Shared Folders. 我必须将源代码复制到另一条路径才能成功。我试图创建一个符号链接,但这也无法构建。我不想每次拉/提交时都复制/粘贴代码。太不方便了 你能给我一些提示吗?非常感谢!
附加信息:我无法直接读取/写入那些 vmware 共享文件夹。
更多信息:https ://communities.vmware.com/thread/175917 。
附加信息:现在我可以通过更改共享文件夹的主机和来宾中的设置来读/写。但问题仍然存在。我认为这是因为名称中的空格/Volumes/VMware Shared Folders. 如何更改此默认共享名称或将其挂载到我的文件夹?
附加信息:尝试过但仍然失败:sudo mount -t vmhgfs ".host:/VMware Shared Folders" /Users/username/sharefolder

0 投票
1 回答
1659 浏览

postgresql - 无法理解将 postgres 数据路径安装到 minikube kubernetes 部署上并出现权限错误

我开始使用 kubernetes,我想创建一个带有单个 webserver 和 postgres 数据库的简单应用程序。我遇到的问题是 postgres 的部署给了我权限错误。以下是围绕这个问题的讨论:

编辑

规格:

  • OSX - 10.15.4
  • minikube - v1.9.2
  • Kubernetes - v1.18.2

minikube设置

权限错误:chmod: changing permissions of '/var/lib/postgresql/data': Operation not permitted

我正在尝试将本地操作系统目录挂载到 minikube 中,以便与 postgres 部署/pod/container 卷挂载一起使用。

运行上述设置后,我 ssh 进入 minikube ( minikube ssh) 并检查权限

chmod通过在权限错误表面下运行脚本。如果我更改--mount-string=/Users/holmes/kubernetes/pgdata:/data (省略/pgdata)然后minikube ssh创建pgdata目录:

我在部署之前获得了一组不同的权限

部署后

不知道为什么会发生这种变化,并且chmod权限错误仍然存​​在。似乎上面的参考链接在不同的虚拟机上的不同机器上跳来跳去,我不明白也不能让它工作。有人可以带我去工作吗?通过上述所有讨论超级困惑。

postgres.yaml

更新

我继续将部署脚本更新为一个简单的 pod。目标是将 postgres 映射/var/lib/postgresql/data到我的本地文件目录/Users/<my-path>/database/data以保存数据。

错误:initdb: error: could not access directory "/var/lib/postgresql/data": Permission denied

如何挂载本地文件目录?

0 投票
2 回答
2815 浏览

windows - Docker Desktop 2.2+ 主机卷挂载的性能非常慢

我有一个在文件 io 方面非常密集的构建。它涉及 70k 个松散文件以及相当数量的压缩/解压缩。

当使用主机卷挂载在 Docker Desktop 2.2+ 容器内运行时,此构建的性能会直线下降。

12 分钟 - 直接 Windows 10

19 分钟 - Docker Desktop 2.1.0.5 针对主机安装的卷(Windows /c 驱动器)

71 分钟 - Docker Desktop 2.3.0.2 针对主机安装的卷(Windows /c 驱动器)

2 分钟 - Docker Desktop 2.1.0.5 针对容器文件系统

2 分钟 - Docker Desktop 2.3.0.2 针对容器文件系统

即使使用 Docker 2.1.0.5 针对主机卷挂载,性能也不是很好。但是随着 DD 2.3 从约 19 分钟变为约 71 分钟,这让人心烦意乱。

还有其他人在文件 io 密集型任务上看到这种性能吗?

0 投票
1 回答
473 浏览

docker - 安装卷时,docker 映像中的文件消失

在 docker image 里面有几个文件在/tmp目录中。

例子

当我输入命令来运行这个图像 -> 容器。

Expected behavior是如果我运行ls -al /home/media/simple_dir2 然后文件显示。

actual behavior/home/media/simple_dir2.

另一方面,如果我在没有音量选项的情况下运行相同的图像,例如:

并使用以下命令进入该容器:

然后文件存在。

TL;博士

我想在主机上挂载一个卷(目录),并用 docker 映像内部的文件填充它。

我的环境

  • Ubuntu 18.04
  • 码头工人 19.03.6
0 投票
1 回答
1300 浏览

docker - 在 Azure DevOps 中运行 yaml-pipeline 时将 repo 挂载到 docker 映像中

我正在使用容器步骤在 Azure Devops yaml-pipeline 中运行 docker 映像。但是,我在安装 repo 的内容时遇到问题,以便可以从 docker 映像内部访问它。

Azure Devops pipeline.yml 文件如下:

这失败并显示错误消息:

我还尝试替换$(..)$$[..](请参见此处,但这会导致相同的错误。${{..}}管道甚至无法启动(错误:UI 中的“此上下文中不允许模板表达式”)

如果我删除options脚本运行,但未安装 repo。

对于非 yaml 管道,问题已在此处解决。

任何想法如何做到这一点?或者我是否需要创建一个新的 docker 镜像,其中添加了 repo 文件:ed?