我在使用docker-osx-dev(https://github.com/brikis98/docker-osx-dev)的macOS上使用docker 一切都好。它帮助我解决了慢速卷的问题。但每次当我登上我的docker-compose时我都有权限问题而我被迫通过docker exec和chmod设置权限......我花了很多时间来寻找解决方案。我尝试使用501和1000 id的usermod,但没有任何帮助。你知道怎么解决它吗? 我的项目设置:https://bitbucket.org/SmileSergey/symfonydocker/src 谢谢!
答案 0 :(得分:0)
您可以将http://docker-sync.io与https://github.com/EugenMayer/docker-sync/blob/master/example/docker-sync.yml#L47一起使用,将OSX用户映射到容器上的uid。这将消除整个问题,即使这将完全取代docker-osx-dev。
答案 1 :(得分:0)
作为一种快速解决方法,您可以尝试将命令添加到your docker-compose.yml的nginx部分,如下所示:
nginx:
image: nginx:latest
...
volumes:
- "./config/nginx.conf:/etc/nginx/conf.d/default.conf"
- "./app:/var/www/symfony"
command: /bin/bash -c "chmod -R 777 /var/www/symfony/ && nginx -g 'daemon off;'"
背景:
官方nginx Dockerfile指定以下默认命令:
CMD ["nginx", "-g", "daemon off;"]
正在执行的
nginx -g 'daemon off;'
您已经找到了一个快速而又脏的解决方法,可以在容器中运行chmod -R 777 /var/www/symfony/
。
使用上面docker-compose文件中的命令,我们在执行chmod
默认命令之前执行nginx -g 'daemon off;'
命令。
请注意,Dockerfile中指定的CMD
将替换为docker-compose文件(或docker run ... myimage mycommand
上指定的任何命令)上定义的命令。)
答案 2 :(得分:-2)
对于开发OSX,只需使用vagrant + nfs共享文件夹。它解决了所有问题,并没有要求为开发者添加任何特殊的docker-compose。