我正在尝试将可写Docker卷挂载为只读卷的子级,但是我收到此错误:
ERROR: for wordpress rpc error: code = 2 desc = "oci runtime error:
could not synchronise with container process: mkdir /mnt/sda1/var/lib
/docker/aufs/mnt/.../var/www/html/wp-content/uploads: read-only file
system"
我正在使用wordpress图像,我要挂载的两个卷是:
> / var / www / html / wp-content:包含我的开发代码.只读,因为我不想要任何意外的更改.
> / var / www / html / wp-content / uploads:用户上传的文件.必须是可写的.
快速解决方案是将上传内容移动到其他地方,但我更喜欢Docker解决方案.
我的docker-compose.yml的相关部分:
volumes:
uploads:
driver: local
services:
wordpress:
volumes:
- /dev/workspace/wp-content/:/var/www/html/wp-content/
- uploads:/var/www/html/wp-content/uploads
最佳答案
回答我自己的问题:挂载点必须存在于只读卷中,即使它不会被使用.在安装之前,Docker试图在RO卷中创建uploads目录.
当我在/ dev / workspace / wp-content / uploads创建一个空目录时,错误消失了,一切都按预期工作.