在运行时将文件复制并 chown 到 docker 绑定挂载

Copy and chown files into a docker bind mount at runtime

我在 docker 个容器中有 nginx 和 wordpress,它们共享 /var/www/html.

的卷绑定安装(即映射到磁盘上的文件)

在运行时,我需要将文件添加到映射目录,对它们进行 chown,以便它们可用。它们出现在卷中,但它们的所有者是错误的,因此它们无法被 nginx / wordpress 使用。

(通常建议在 Dockerfile 中执行此操作 - 但在这种情况下不适用。我没有修改应用程序,我只是添加到卷中,这不是临时的。)

当我停止并启动 docker 应用程序(nginx 和 wordpress)时,一切正常。但在线时不起作用。

父目录有chmod 2775chown -R bob:www-data。当我在运行时将文件复制到那里时,我这样做是 bob。但是 nginx 仍然无法访问这些新文件 (404)。

那么如何在运行时将文件复制并 chown 到绑定挂载中?

您应该检查您不仅使用相同的用户名,而且使用相同的 UID 和 GID(如果您在 docker 和主机中都有用户 bob,但 UID 和 GID 不匹配您将遇到权限问题)。

上对此有很好的解释。