我有一个docker-compose的docker的symfony安装程序,除了当我运行缓存时清除工作良好,清除,控制台无法访问这些文件。缓存文件的symfony泊坞窗权限问题
我可以绕过许可问题,取消注释umask(0000);在控制台和web/app_dev.php但我想按照推荐运行symfony。
我做的是旋起容器docker-compose up
然后我进入容器。容器通过数据卷包含apache,php和代码。
docker exec -i -t apache_1 /bin/bash
显然,我正在以root身份登录,然后,当我在高速运行
app/console cache:clear
所有文件都属于root用户。 www-data作为web服务器用户现在无法再访问这些文件。
我也可以通过以www-data登录来绕过这个问题,然后由cache:clear生成的文件属于www-data,并且web服务器可以访问它们。
docker exec -u www-data -i -t apache_1 /bin/bash
但是,这是我不土地在bash,但在/usr/sbin目录/ NOLOGIN和不具有的东西的.bash_history等下行。
搜索我发现这是Dockerfile的一部分,以解决权限问题,但它对我没有任何影响。
RUN usermod -u 1000 www-data
如果我没有理解纠正这种切换用户1000到www数据,但因为我的根,当我登录到该容器,这并不工作,我承担。
那么,为什么我根当我登录到容器中,这是怎么usermod命令想与我们合作?
泊坞窗,compose.yml:
proxy:
image: jwilder/nginx-proxy:latest
volumes:
- /var/run/docker.sock:/tmp/docker.sock:ro
ports:
- "80:80"
elastic:
build: docker/elasticsearch
ports:
- "9200:9200"
volumes:
- data/elasticsearch:/usr/local/elasticsearch/data
apache:
build: docker/apachephp
environment:
- VIRTUAL_HOST=myapp.dev
volumes:
- ./code:/var/www/app
- ./dotfiles/.bash_history:/.bash_history
- ./logs:/var/www/app/app/logs
links:
- elastic
expose:
- "80"
http://symfony.com/doc/current/book/installation.html#book-installation-permissions – malcolm
害怕chmod + a在ubuntu中不可用,并且setfacl不能使用默认的码头设置 – ivoba
可以吗请添加您的docker-compose.yml吗? – Snroki