问题标签 [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.
kubernetes - 如何为多租户环境使用动态持久卷配置
我为我们的学生开发了一个 Web 应用程序,现在我想在 kubernetes 容器环境中运行它。每个用户(可以被视为租户)都有自己的应用程序环境(1:1 关系)。应用程序环境由 2 个 pod(1x 网络服务器,1x 数据库)组成,由部署和服务定义。
我正在使用 kubernetes v1.17.2 并且我想使用动态 PersistentVolumeClaims 的功能以及在删除和重新创建新 pod 之间保留特定用户(租户)数据的可能性(例如更新到新的应用程序版本或硬件重启后)。
我考虑过在创建 pod 时使用环境变量(例如 user-1、user-2、user-x...),并使用这些信息来允许重用动态创建的 PersistentVolume。
是否有任何最佳实践或概念如何实现?
最好的问候肖恩
java - 复制文件后如何释放docker的内存?
我们正在开发性能非常重要的 java 应用程序。它处理大量文件并创建大量文件作为输出。因此,为了释放内存,我们在批量文件(例如 15 个文件)之后将数据临时保存到磁盘。如果需要,这些临时保存的文件可以稍后由应用程序加载。我们也在对我们的应用程序进行 docker 化,但我们遇到了问题。Docker 有自己的文件系统。因此,即使我们将文件保存到磁盘后,docker 也会在内存中保留一些内容,即将其自己文件系统中的文件与磁盘上保存的文件连接起来。我们使用绑定挂载。因此,我们的 java 应用程序能够处理数千个文件,但是 dockerized 版本在 75 个文件后速度变慢,并且在大约 150 个文件后抛出内存不足异常。复制文件后有没有办法释放docker的内存?
vue.js - VUE - 检查所有组件是否已加载的全局挂钩
我想在每次加载新页面时运行一个函数,例如在安装视图(home.vue,contact.vue,...)时。
我不想从挂载的钩子上对每个视图调用这个函数。有没有办法检查,也许从 app.js,如果所有组件都已安装?像this.allMounted --> true/false
:)
docker - 是否可以使用单个 docker 卷映射到两个不同的目录?
我正在使用 VS Code、远程开发容器和 Docker 在容器中创建开发环境。一切正常,但我确实注意到,在处理不同的项目时,诸如此类的事情yarn install
意味着每次都必须下载 npm 模块。当然,一旦容器映像执行此操作,它们就会存储在缓存中,特别是/usr/local/share/.cache/yarn/v6
.
当我尝试将该文件夹挂载到主机上yarn install
时,会经常失败,说明由于网络连接不良(连接很好)而无法下载包。所以,我创建了一个卷,一切都很好。
我遇到的问题是我还想共享卷中的其他文件夹,以便多个容器对 NuGet 包等内容使用相同的缓存。我希望以某种方式让我的音量看起来像这样:
这似乎不是卷在 docker 中的工作方式,所有文件都混合在卷的根目录中(没有子目录)。当然,我不能简单地映射整个 /usr 文件夹或类似的东西,这太疯狂了。
在我开始为每个缓存和配置文件创建不同的卷之前,有没有办法使用单个共享卷来做到这一点?
php - 对于可写挂载,php is_writable 总是返回 false
要将我的应用程序转换为 laravel,我尝试创建一个新应用程序。我正在使用网络挂载来访问 linux 服务器上的文件。没有 ssh 访问。我的机器是Windows。服务器可作为网络挂载访问。在已安装的驱动器上创建 laravel-6 应用程序时,出现此错误:
在所有目录中我都可以读写。经过一些测试,我认识到is_writable
驱动器上的文件总是返回 false (在 Windows 上)。这很愚蠢,因为我可以在驱动器上创建和修改文件(包括缓存目录)。我也在cygwin中尝试过。结果相同。
phpfileperms
方法返回格式:40777
. 所以我想它应该是可读可写的。php版本:7.3.9
如何配置我的 windows php 环境以将文件视为可写文件?
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
postgresql - 无法理解将 postgres 数据路径安装到 minikube kubernetes 部署上并出现权限错误
我开始使用 kubernetes,我想创建一个带有单个 webserver 和 postgres 数据库的简单应用程序。我遇到的问题是 postgres 的部署给了我权限错误。以下是围绕这个问题的讨论:
- https://github.com/docker-library/postgres/issues/116
- https://github.com/docker-library/postgres/issues/103
- https://github.com/docker-library/postgres/issues/696
- 无法在 AKS 中获得 Postgres 权限或 PVC
- Kubernetes - 封装 DB 的 Pod 崩溃
- 将本地目录挂载到 minikube 的 pod 中
- https://serverfault.com/questions/981459/minikube-using-a-storageclass-to-provision-data-outside-of-tmp
编辑
规格:
- 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
如何挂载本地文件目录?
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 密集型任务上看到这种性能吗?
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
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?