允许WordPress对Docker挂载文件夹的写入权限

我有一个Docker设置,可以与Ubuntu,Nginx,PHP-FPM和MySQL一起使用。

WordPress可以写入上传文件夹,我可以在线编辑模板,但是当我尝试升级WordPress或插件时,它会失败:

解压更新…

无法创build目录:wordpress

安装失败

我有chmod 777整个WordPress文件夹,所以我不知道这是Docker或WordPress相关。 我也检查了各种日志,但唯一相关的行我发现是这样的:

192.168.59.3 – – [01 / Oct / 2014:14:16:58 +0000]“POST /wp-admin/update-core.php?action=do-core-upgrade HTTP / 1.1”200 5576“/ wp- admin / update-core.php“”Mozilla / 5.0(Macintosh; Intel Mac OS X 10_10_0)AppleWebKit / 537.36(KHTML,如Gecko)Chrome / 37.0.2062.124 Safari / 537.36“

以下是我如何创buildDocker环境:

 brew install docker boot2docker boot2docker init # Allow VM access to our space curl http://static.dockerfiles.io/boot2docker-v1.2.0-virtualbox-guest-additions-v4.3.14.iso > ~/.boot2docker/boot2docker.iso VBoxManage sharedfolder add boot2docker-vm -name home -hostpath /Users boot2docker up 

以下是我如何启动容器:

 docker run -p 80:80 --name wp -d -v ~/wordpress:/mnt/www:rw wp 

这里是Nginxconfiguration:

 server { listen 80; ## listen for ipv4; this line is default and implied listen [::]:80 default ipv6only=on; ## listen for ipv6 root /mnt/www; index index.php index.html index.htm; # Make site accessible from http://localhost/ server_name localhost; location / { # First attempt to serve request as file, then # as directory, then fall back to index.html try_files $uri $uri/ /index.php?q=$uri&$args; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/www; } # pass the PHP scripts to FastCGI server # location ~ \.php$ { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; } } 

似乎需要一些黑客能够以root身份以其他用户身份写入已装入的卷。 请参阅https://github.com/boot2docker/boot2docker/issues/581