下面是我发布的答案,还不能接受我自己的答案
我正在开发一个聊天客户端,为了进行开发,我使用一个 docker 设置,该设置使用“生成”命令来创建一个配置文件,您可以调整该文件并使用该文件来启动实际服务。在我的桌面上它工作正常,但是当尝试在我的笔记本电脑上的 respberry 或单独的硬盘上运行它时,它会在构建过程中抛出文件处理程序错误,指出权限已被拒绝。
我可能是个菜鸟,但我确实更改了笔记本电脑上的文件夹安装点权限,并且树莓派在该文件夹上设置了权限。
Docker 还设置为无需为每个命令键入 sudo 即可运行。
以下是工作配置文件与非工作配置文件的权限代码
# Auto generated, working local
-rwxrwxrwx 1 root root 103443 <date> <filename>
# Auto generated not working pi and laptop
-rw-r--r-- 1 991 991 106030 <date> <filename>
我只是没有正确设置我的硬盘吗?无论我的 pi 是否位于默认操作系统分区,我都会收到此错误。我能够启动并使用反向代理服务 django,没有任何问题。
我正在构建的聊天服务是矩阵/突触。这是 synapse 服务器存储库上的 docker 文件夹,其中包含基本设置。出现问题的文件是 homeserver.yml,它是从以下位置生成的:
docker-compose run --rm synapse generate
答案1
实际上根本不是linux权限恶作剧
这可能是最近的 synapse docker repo 推送的副作用,因为这种情况发生在我的多个设备上。我通过自己指定 docker 手动设置的一部分解决了这个问题。该解决方案可能对其他配置相关问题有用。
解决了,精确的解决方案可能会以更好的方式应用
设想:
生成配置突触将用于为 synapse 创建 docker 容器的服务器。目标是用于开发 矩阵客户。
问题:
成功创建配置('homeserver.yaml')后,使用该配置构建突触将引发权限错误,并显示 python 堆栈跟踪,指示无法读取文件(在容器内)、结果service exit 1
和 no docker logs service
。
解决方案:
其中一些设置可以使用环境变量进行设置,请参阅 synapse readme 检查后矩阵/突触docker repo 我注意到最近频繁的更新历史记录。要么是我的系统搞砸了,要么是容器最近的配置设置存在问题。所以我自己做了一些通常自动化的事情。
创建了 synapse 与 conf ('homeserver.yml') 一起使用的文件夹 如果使用绑定挂载(如存储库页面上所示),docker 卷将位于
/var/lib/docker/volumes/<name of bind mount>/_data
您要创建 media_store、上传、日志的位置。在“homeserver.yml”中查找创建的文件夹名称,并确保路径指向这些文件夹。
分配默认组并遵循突触存储库指南。
# UID & GID default to 991 chown 991:991 media_store/ uploads/ logs/
将日志设置处理程序指向日志文件夹,设置此配置时日志文件不存在。日志处理程序文件可以在 .log.config 中找到
handlers: file: filename: /data/logs/homeserver.log