如何在开发时设置docker上的文件和目录权限

时间:2016-10-30 22:19:31

标签: docker boot2docker docker-volume

我正在开发一个带有docker的symfony应用程序。 我'共享一个主机卷,它应该包含我应该用apache运行的项目。

docker run -d -ti --name web -p 80:80 -v /Users/Matteo/Documents/em3:/var/www/html/applications  ubuntu /bin/bash

作为基本图像,我使用了ubuntu,我已经安装了apache和PHP7。一切正常,但当我进入我的码头时:

docker exec -it web /bin/bash

root@85a23559d01b:/var/www/html/applications/auth# app/console cache:clear --env=dev


  [Symfony\Component\Filesystem\Exception\IOException]
  Failed to remove directory "/var/www/html/applications/auth/app/cache/de~/jms_serializer": .

这可能是因为dir权限?:

root@85a23559d01b:/var/www/html/applications/auth/app# ls -al | grep cache

drwxr-xr-x 1 1000 staff   374 Oct 30 21:50 cache

chmod没有任何改变:

root@85a23559d01b:/var/www/html/applications/auth/app# chmod g+w cache

root@85a23559d01b:/var/www/html/applications/auth/app# ls -al | grep cache
drwxr-xr-x 1 1000 staff   374 Oct 30 21:50 cache

我想我错过了一些东西。任何帮助将不胜感激

1 个答案:

答案 0 :(得分:1)

symfony issue 2600

中所评论
  

你可以轻松地"如果在Windows主机上使用Linux VirtualBox,则重现此操作。

[这可能是这种情况,使用Docker Toolbox中的boot2docker代替Docker for Windows及其Hyper-V

  

cache:clear永远无法移除app/cache/dev_old - 但这可能是VirtualBox提供的共享文件夹系统的问题(在他们的论坛上阅读类似问题)。

     

您必须升级VirtualBox Guest Additions

OP Bertuz指出in the comments至" Changing boot2docker to use NFS for local mounts in OS X"及其file-nfs-mount-boot2docker-sh要点(以及more recent one)。