docker - 进程可以在 Windows 上写入 docker 卷,而不是在 Ubuntu 上
问题描述
我有一个基于opencpu/base的图像。它启动一个基于 apache 的服务器,然后在 sombody 每次调用 API 端点时调用 R 脚本。
其中一个脚本尝试将文件写入容器中的某个位置。当我将文件夹挂载到该位置时,它可以在我的 Windows 机器上运行,但不能在 Ubuntu 上运行。
我试过在 Ubuntu 上使用命名卷,但它也不起作用。当我在 Ubuntu 上以交互方式在容器内运行 bash 时,我可以很好地写入和读取已安装的卷。但是apache进程不能。
有人对这里可能发生的事情有一些提示吗?
解决方案
当您以交互方式登录到容器时,您将拥有 root 权限。Apache 通常作为另一个用户 (www-data) 运行,并且该用户必须对您希望它读取的文件夹具有读取权限。
确保文件夹的权限与将要读取它的用户匹配。
推荐阅读
- php - 将 PHP 从 5.6 升级到 7.3 后请求错误
- python - 在 python 中使用正则表达式检查有效输入
- angular - 如何从 ionic 4 App 中的 sqlite 数据库中删除键/值对
- dataframe - 如何在 Julia 中将 GroupedDataFrame 转换为 DataFrame?
- python - 如何使用 Python Scrapy 从该网站获取信息?
- java - 原型spring bean只给我一个类的实例
- contentful - 内容丰富的 UI 扩展教程
- laravel - Laravel Eloquent WhereIn 0 = 1
- wget - Wget 获取typo3temp 而不是页面树
- testing - Sqlalchemy - 在测试中覆盖数据库引擎