gpt4 book ai didi

wordpress - docker 命名卷的文件所有权

转载 作者:行者123 更新时间:2023-12-02 18:07:53 26 4
gpt4 key购买 nike

当我尝试在 Docker 容器上运行 WordPress 时遇到文件夹所有权问题。 wp-contentthemes 等文件夹归 root 所有,不允许我从 Web 界面安装主题和插件。

目标

  • 在 Docker 上运行 WordPress。
  • 从 git 存储库(我们拥有)中获取主题。
  • 能够从其官方 Docker 镜像 (wordpress:cli) 运行 WP-CLI。
  • 能够从网络界面安装主题和插件。
  • /var/www/html 下的所有文件和文件夹都归 www-data (uid 33) 所有。

规范

  • Docker 版本 18.09.5,构建 e8ff056
  • docker-compose 版本 1.24.0,构建 0aa59064
  • 每个服务的单个容器实例 - 没有 kubernetes、swarm、stack 等。
  • 我的 docker-compose.yml
  • 我的 dockerfile(从 gi​​t 仓库复制):

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

如果我从 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

我将第一行更改为 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))?

最佳答案

您可以在 dockerfile 中使用 ADD 或 COPY 命令设置所有者,对于您的 COPY 命令,请尝试 COPY --chown:www-data:www-data .//var/www/html/wp-content/themes/主题/.

关于wordpress - docker 命名卷的文件所有权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55658273/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com