我有一個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