在运行时将文件复制并 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 2775
和chown -R bob:www-data
。当我在运行时将文件复制到那里时,我这样做是 bob
。但是 nginx 仍然无法访问这些新文件 (404)。
那么如何在运行时将文件复制并 chown 到绑定挂载中?
您应该检查您不仅使用相同的用户名,而且使用相同的 UID 和 GID(如果您在 docker 和主机中都有用户 bob,但 UID 和 GID 不匹配您将遇到权限问题)。
上对此有很好的解释。
我在 docker 个容器中有 nginx 和 wordpress,它们共享 /var/www/html
.
在运行时,我需要将文件添加到映射目录,对它们进行 chown,以便它们可用。它们出现在卷中,但它们的所有者是错误的,因此它们无法被 nginx / wordpress 使用。
(通常建议在 Dockerfile 中执行此操作 - 但在这种情况下不适用。我没有修改应用程序,我只是添加到卷中,这不是临时的。)
当我停止并启动 docker 应用程序(nginx 和 wordpress)时,一切正常。但在线时不起作用。
父目录有chmod 2775
和chown -R bob:www-data
。当我在运行时将文件复制到那里时,我这样做是 bob
。但是 nginx 仍然无法访问这些新文件 (404)。
那么如何在运行时将文件复制并 chown 到绑定挂载中?
您应该检查您不仅使用相同的用户名,而且使用相同的 UID 和 GID(如果您在 docker 和主机中都有用户 bob,但 UID 和 GID 不匹配您将遇到权限问题)。