我可以在只读的卷中安装一个可写的码头工具吗?



我试图在一个只读卷的孩子的孩子中安装一个可写的码头音量,但是我得到了这个错误:

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卷中创建上传目录。

当我在/dev/dev/workspace/wp-content/uploads 上创建一个空目录时,错误消失了,一切都按预期工作。

是的,通常,您可以!这是一个只读父路径

的示例
-v $DIR/htdocs:/var/www/html:ro

和另一个坐骑

-v $DIR/logs:/var/www/html/app/cache:rw

请参阅更多https://stackoverflow.com/a/37730878/4986182

最新更新