当使用 compose 进行开发时,我将我的应用程序安装在/var/www/html 内:
volumes:
- ./app:/var/www/html
我的本地副本需要生产网站中的所有图像,数量相当多,因此我不想将它们存储在我的小型 SSD 中,而是存储在一个大的外部磁盘中。
所以我的图像位于我的/media/storage/bigdisk/images 中。
是否可以将此位置安装到已安装的/var/www/html 中?
这个方法似乎行不通:
volumes:
- ./app:/var/www/html
- /media/storage/bigdisk/images:/var/www/html/images
请您参考如下方法:
这应该可以正常工作,该解决方案的唯一缺点是 docker 将在 ./app/images
中创建额外的目录- 这样它就可以挂载图像卷。
对于此目录树:
- app
--- index.php
- docker-compose.yml
- media
--- picture.png
和docker-compose.yml
:
version: '2'
services:
app:
image: ubuntu
volumes:
- ./app:/var/www/html
- ./media:/var/www/html/images
你得到:
$ docker-compose run --rm app find /var/www/html
/var/www/html
/var/www/html/index.php
/var/www/html/images
/var/www/html/images/picture.png
即使在./app/images
时这也有效。目录在本地存在一些内容。如果它不存在,那么 docker 会在其中创建空目录 root:root
权限(如果容器以 root 身份运行)。
在 Docker version 1.12.6
上测试和docker-compose version 1.8.0