当我尝试在Docker容器上运行WordPress时遇到文件夹所有权问题。像wp-content
和themes
这样的文件夹是root拥有的,不允许我从Web界面安装主题和插件。
wordpress:cli
)运行WP-CLI。/var/www/html
下的所有文件和文件夹归www-data
(uid 33)所有。docker-compose.yml
dockerfile
(从git repo复制):
FROM 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
如果我是从高山建造的,则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
我将第一行更改为FROM 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))?
答案 0 :(得分:-1)
您可以在dockerfile中使用ADD或COPY命令设置所有者,对于COPY命令,请尝试COPY --chown:www-data:www-data ./ /var/www/html/wp-content/themes/theme/
。