Docker上的WordPress:无法在装入的卷上创建目录

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

$docker exec 5b957c7b9c5ad054883694afbfb80d3c9df6707458d55011f471be0701f3890c ls-l
总数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 2016年9月27日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 2016年8月29日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内容
-rw-r--r--1 www-data www-data 3286 2015年5月24日wp-cron.php
drwxr-xr-x 18 www-data www-data 12288 May 16 21:50 wp包括
-rw-r--r--1 www-data www-data 2422 2016年11月21日wp-links-opml.php
-rw-r--r--1 www-data www-data 3301 2016年10月25日wp-load.php
-rw-r--r--1 www-data www-data 33939 2016年11月21日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 2016年10月19日wp-signup.php
-rw-r--r--1 www-data www-data 4513 2016年10月14日wp-trackback.php
-rw-r--r--1 www-data www-data 3065 2016年8月31日xmlrpc.php

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

$sudo docker run-p80:80——链接一些mysql:mysql-v/var/www:/var/www/html——名称docker wordpress-d wordpress

问题是,即使在/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{}\;

在容器内运行Wordpress时,我仍然会遇到此类错误:

无法创建目录

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

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

这个问题有点棘手

但是,执行chown-R www-data:www-data/var/www以设置正确的用户:组权限在技术上应该可以解决这个问题

在新的wordpress上安装上传&amp插件文件夹尚不存在,因此,当安装程序试图创建插件/子文件夹时,它将抛出错误

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

然而,一旦掌握了这个问题,解决它就相当容易了

选项A

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

运行mkdir/var/www/html/wp content/plugins
运行mkdir/var/www/html/wp content/uploads
RUN chown-R www-data:www-data/var/www
运行find/var/www/-typed-execchmod0755{}
运行find/var/www/-type f-exec chmod 644{}

选项B

ssh连接到docker容器中
docker exec-it<集装箱名称&gt/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/-typed-execchmod0755{}
$find/var/www/-type f-exec chmod 644{}

发表评论