之前使用docker进行镜像打包(docker build)和运行(docker-compose up)的时候,出现过权限问题
500 Internal Server Error
can't create buffer file for /fluentd/log/buffer.*.log. Stop creating buffer files: error = Permission denied @ rb_sysopen - /fluentd/log/buffer.b5b241f11f9b99d7dd50e39e09f07375f.log
出现原因:
容器中目录权限和本地映射数据卷的权限不一致,本地映射目录权限要高于容器目录权限,所以映射到本地之后,没有写入的权限。
比如分别是 dr--r-xr-x root 和drwxr-xr-x fluent
解决办法
修改两边的权限一致即可,方式二更合理些,调整文件启动容器之后就完成整个docker部署过程了。方式一可作为排查问题验证方法
方式1. 在本地数据卷目录更改文件权限
chmod -R 777 对应本地映射数据卷目录
方式2. 在docker-compose.yml文件里修改运行权限
user: root
docker build 过程中出现权限问题可以尝试通过在DockerFile中添加RUN chmod -R 777 dockerizing过程引用文件 来解决
补充文件权限说明:
例如
drwxr-xr-x
读(read),写(write),执行x(execute)简写即为(r,w,x),亦可用