Docker上的Wordpress:无法在已安装的卷上创建目录

Pet*_* G. 6 wordpress chmod chown docker docker-container

以下是路径上Wordpress Docker容器中的原始文件/var/www/html:

$ docker exec 5b957c7b9c5ad054883694afbfb80d3c9df6707458d55011f471be0701f3890c ls -l
total 192
-rw-r--r--  1 www-data www-data   418 Sep 25  2013 index.php
-rw-r--r--  1 www-data www-data 19935 Jan  2 18:51 license.txt
-rw-r--r--  1 www-data www-data  7433 Jan 11 17:46 readme.html
-rw-r--r--  1 www-data www-data  5447 Sep 27  2016 wp-activate.php
drwxr-xr-x  9 www-data www-data  4096 May 16 21:50 wp-admin
-rw-r--r--  1 www-data www-data   364 Dec 19  2015 wp-blog-header.php
-rw-r--r--  1 www-data www-data  1627 Aug 29  2016 wp-comments-post.php
-rw-r--r--  1 www-data www-data  2764 May 29 22:19 wp-config-sample.php
-rw-r--r--  1 www-data www-data  3148 May 29 22:19 wp-config.php
drwxr-xr-x  4 www-data www-data  4096 May 16 21:50 wp-content
-rw-r--r--  1 www-data www-data  3286 May 24  2015 wp-cron.php
drwxr-xr-x 18 www-data www-data 12288 May 16 21:50 wp-includes
-rw-r--r--  1 www-data www-data  2422 Nov 21  2016 wp-links-opml.php
-rw-r--r--  1 www-data www-data  3301 Oct 25  2016 wp-load.php
-rw-r--r--  1 www-data www-data 33939 Nov 21  2016 wp-login.php
-rw-r--r--  1 www-data www-data  8048 Jan 11 05:15 wp-mail.php
-rw-r--r--  1 www-data www-data 16255 Apr  6 18:23 wp-settings.php
-rw-r--r--  1 www-data www-data 29896 Oct 19  2016 wp-signup.php
-rw-r--r--  1 www-data www-data  4513 Oct 14  2016 wp-trackback.php
-rw-r--r--  1 www-data www-data  3065 Aug 31  2016 xmlrpc.php
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用已安装的Docker卷启动Wordpress容器,以便能够持久存储自定义文件:

$ sudo docker run -p 80:80 --link some-mysql:mysql  -v /var/www:/var/www/html --name docker-wordpress -d wordpress
Run Code Online (Sandbox Code Playgroud)

问题是即使在完全复制本地文件的所有权和权限时/var/www:

$ sudo chown -R www-data:www-data /var/www
$ sudo find /var/www/ -type d -exec chmod 755 {} \;
$ sudo find /var/www/ -type f -exec chmod 644 {} \;
Run Code Online (Sandbox Code Playgroud)

在容器中运行Wordpress时,我仍然收到此类错误:

无法创建目录

如何正确设置权限以确保Wordpress能够写入已安装的Docker卷?

Mat*_*erg 7

查看您的错误消息,我得出的结论是您正在尝试安装插件或更新Wordpress本身

这个问题很难解决。

执行chown -R www-data:www-data /var/www以设置正确的user:group权限应该从技术上解决它,但是..

在新的wordpress上,uploadplugins文件夹尚不存在,因此当安装程序尝试创建plugins/subfolder它时,它将引发错误。

如何修复Wordpress / Docker插件安装权限问题

但是,一旦掌握了此问题,就很容易解决它。

选项A

.Docker文件末尾添加以下[CMD]命令,但在任何命令之前。

RUN mkdir /var/www/html/wp-content/plugins
RUN mkdir /var/www/html/wp-content/uploads
RUN chown -R www-data:www-data /var/www
RUN find /var/www/ -type d -exec chmod 0755 {} \;
RUN find /var/www/ -type f -exec chmod 644 {} \;

选项B

SSH到您的Docker容器
docker exec -it <container_name> /bin/bash

如果您不知道容器名称,请使用
docker ps

只需运行与上面示例相同的命令
$ mkdir /var/www/html/wp-content/plugins
$ mkdir /var/www/html/wp-content/uploads
$ chown -R www-data:www-data /var/www
$ find /var/www/ -type d -exec chmod 0755 {} \;
$ find /var/www/ -type f -exec chmod 644 {} \;