Wordpress docker命名卷上的文件所有权
在Docker容器上运行WordPress时,我遇到了文件夹所有权问题。像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,内部
wp content
和themes
这样的文件夹归root所有,不允许我从web界面安装主题和插件
目标
- 在Docker上运行WordPress
- 从git回购(归我们所有)中获取主题
- 能够从其正式Docker映像(
)运行WP-CLIwordpress:CLI
- 能够从web界面安装主题和插件
- 将
下的所有文件和文件夹归/var/www/html
(uid 33)所有www-data
- Docker版本18.09.5,内部版本e8ff056
- docker compose版本1.24.0,内部版本0aa59064
- 每个服务的单个容器实例-无kubernetes、swarm、stack等
- 我的
- 我的
(复制自git回购协议):dockerfile
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构建,uid33
是所有者:
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图像中。请在复制步骤后尝试重新澄清它,与基本图像相同。不幸的是,没有运气:(