【发布时间】:2018-12-23 06:02:20
【问题描述】:
我想设置一个本地 Wordpress 开发环境,所以我正在尝试 Docker for Windows 和 WSL。我使用了标准图像(wordpress:4.9.7、mysql:5.7 和 phpmyadmin/phpmyadmin)并使用了 docker-compose。我可以运行 Wordpress,但在尝试更新或添加插件时遇到问题。
我在 docker-compose.yml 的 Wordpress 服务部分有这个:
volumes:
- ./wp-content:/var/www/html/wp-content
这意味着:
- 我可以在主机中编辑主题和插件文件(很棒),但是...
- 容器的 /var/www/html/wp-content 文件夹是 root:root 755。所以 Wordpress 不能更新/添加插件或从管理员上传其他文件 - 我不能 chown 或 chmod 这个。
如果我从 docker-compose.yml 中删除卷,我将获得回写权限,但我无法从主机编辑或保留 wp-content 文件。
我只想要一个简单的 Wordpress 开发环境。 有没有办法让它与 Docker for Windows 一起工作,还是我必须重新使用虚拟机?
编辑:根据this,不可能使用 Docker for Windows 托管挂载卷并且只有 755 权限。
它没有指定容器中已安装卷的所有者是否可以从 root:root 更改。我尝试了各种方法在正在运行的容器中执行此操作(chown 似乎默默地失败),以及尝试在 docker-compose.yml 中添加各种“用户:...”但没有成功。如果无法设置或修改共享卷的所有者,则 Wordpress 无法写入该共享卷。
一种可能的解决方案可能是在开发过程中使用挂载的卷(即在 Windows 主机上使用 Sublime 编写代码时),然后在我需要授予 Wordpress 写权限时移除挂载(例如更新插件或添加媒体 -基本上只要它实际需要运行)。听起来很可怕,但似乎我的选择有限。
如果有人有任何其他建议,仍然会喜欢一个好的 Windows 工作流程。我希望有一种方法可以更改容器中已安装卷的所有者。我还没有找到任何可以明确说明这可能或不可能的信息,所以希望得到一些关于这方面的指导。
【问题讨论】:
标签: wordpress docker docker-compose docker-for-windows