Bahmni Docker部署后文档上传权限问题求助
解决Bahmni Docker文档上传权限异常问题
核心原因
patient-document服务的运行用户(通常为tomcat)对document_uploads文件夹没有持久读写权限,手动修改权限后,新上传文件会继承应用进程的用户权限配置,导致UI无法读取文件。
具体解决方案
1. 容器内持久化设置文件夹所有者
进入patient-document容器,先确认应用运行的用户:
docker exec -it patient-document /bin/bash ps aux | grep java
找到进程所属用户(一般是tomcat),将document_uploads文件夹的所有者改为该用户:
# 替换为容器内document_uploads的实际路径,可通过find / -name document_uploads查找 chown -R tomcat:tomcat /var/www/bahmni_config/document_uploads
2. 修改Docker Compose配置(避免容器重启后权限重置,推荐)
编辑docker-compose.yml中patient-document服务的配置,添加启动时自动设置权限的命令:
services: patient-document: # 保留原有配置 command: > bash -c "chown -R tomcat:tomcat /var/www/bahmni_config/document_uploads && catalina.sh run"
或者直接指定服务运行用户(需先通过docker exec patient-document id tomcat获取用户UID/GID):
services: patient-document: # 保留原有配置 user: "1000:1000" # 替换为实际UID:GID
修改后重启服务:
docker-compose up -d patient-document
3. 检查宿主机挂载卷权限(若使用宿主机目录挂载)
如果document_uploads是挂载的宿主机目录,确保宿主机目录的所有者与容器内应用用户的UID/GID一致:
# 查看容器内用户UID/GID docker exec patient-document id tomcat # 宿主机修改目录权限 chown -R 1000:1000 /宿主机上的document_uploads路径
验证方法
上传新文档后,检查容器内文件权限:
docker exec patient-document ls -l /var/www/bahmni_config/document_uploads
确保文件所有者为应用运行用户,权限至少为rw-r--r--,此时UI即可正常读取文件。
内容的提问来源于stack exchange,提问作者Madhav
相关产品推荐
相关产品推荐

