Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wordpress docker命名卷上的文件所有权_Wordpress_Docker_Docker Compose_File Ownership - Fatal编程技术网

Wordpress docker命名卷上的文件所有权

Wordpress docker命名卷上的文件所有权,wordpress,docker,docker-compose,file-ownership,Wordpress,Docker,Docker Compose,File Ownership,在Docker容器上运行WordPress时,我遇到了文件夹所有权问题。像wp content和themes这样的文件夹归root所有,不允许我从web界面安装主题和插件 目标 在Docker上运行WordPress 从git回购(归我们所有)中获取主题 能够从其正式Docker映像(wordpress:CLI)运行WP-CLI 能够从web界面安装主题和插件 将/var/www/html下的所有文件和文件夹归www-data(uid 33)所有 规格 Docker版本18.09.5,内部

在Docker容器上运行WordPress时,我遇到了文件夹所有权问题。像
wp content
themes
这样的文件夹归root所有,不允许我从web界面安装主题和插件

目标
  • 在Docker上运行WordPress
  • 从git回购(归我们所有)中获取主题
  • 能够从其正式Docker映像(
    wordpress:CLI
    )运行WP-CLI
  • 能够从web界面安装主题和插件
  • /var/www/html
    下的所有文件和文件夹归
    www-data
    (uid 33)所有
规格
  • Docker版本18.09.5,内部版本e8ff056
  • docker compose版本1.24.0,内部版本0aa59064
  • 每个服务的单个容器实例-无kubernetes、swarm、stack等
  • 我的
  • 我的
    dockerfile
    (复制自git回购协议):
来自wordpress:5的

COPY--chown=33//var/www/html/wp-content/themes/theme/


我没有在dockerfile上声明卷——它只是上面的两行,没有其他内容。事实上,此图像的存在只是为了将文件夹复制到WordPress图像中。不过,WordPress映像(我的映像的来源)在其dockerfile中声明了一个卷

我确实在docker compose文件中声明了卷,但如果忽略它们,问题仍然存在

结果 文件和文件夹所有权

  • 当使用
  • 当使用
  • 当使用
  • 当使用

更新 Docker构建中的
COPY
步骤出现了一些问题,但我不知道是什么

我将我的
dockerfile
更改为

FROM alpine
COPY ./ /var/www/html/wp-content/themes/theme/
RUN chown -R 33:33 /var/www/html
RUN ls -n /var/www/html
如果我从alpine构建,uid
33
是所有者:

Step 4/4 : RUN ls -n /var/www/html
 ---> Running in e9850fa85800
total 4
drwxr-xr-x    1 33       33            4096 Apr 12 19:34 wp-content
我将第一行从wordpress更改为
现在
root
是所有者

Step 4/4 : RUN ls -n /var/www/html
 ---> Running in 2810cc37aaba
total 4
drwxr-xr-x. 3 0 0 4096 Apr 12 19:38 wp-content


如何继续获得我想要的结果(即
/var/www/html/wp content/themes/theme/
上的主题文件以及
www data
(uid 33)拥有的所有文件和文件夹)?

您可以使用dockerfile中的ADD或COPY命令为您的COPY命令设置所有者,尝试
COPY--chown:www-data:www-data//var/www/html/wp-content/themes/theme/

我已经在做了。它不起作用。这正是我面临的问题。如果在执行copy-chown之前将其声明为卷,它将不起作用,如果颠倒它应该执行的操作顺序。我不知道你是按什么顺序来做的。我没有在我的dockerfile上声明卷,只是问题中的那两行,没有其他内容。不过,
wordpress
图像在其dockerfile中声明了一个卷。我的图像是从它派生出来的--事实上,我的图像的存在只是为了将文件夹复制到WordPress图像中。请在复制步骤后尝试重新澄清它,与基本图像相同。不幸的是,没有运气:(