我想设置一个本地Wordpress开发环境,因此我正在尝试Windows和WSL的Docker。我使用了标准映像(wordpress:4.9.7,mysql:5.7和phpmyadmin / phpmyadmin)并使用docker-compose。我可以让Wordpress运行,但是在尝试更新或添加插件时遇到问题。
我在docker-compose.yml的Wordpress服务部分中拥有此功能:
volumes:
- ./wp-content:/var/www/html/wp-content
这意味着:
如果我从docker-compose.yml中删除卷,则会获得写访问权限,但无法从主机编辑或保留wp-content文件。
我只想要一个简单的Wordpress开发环境。 是否有办法使它与Windows的Docker一起使用,还是我必须重新使用虚拟机?
编辑:根据this的说法,无法使用Docker for Windows主机装载卷,并且除755权限外,其他任何内容都不能。
它没有指定是否可以从root:root更改容器中已安装卷的所有者。我尝试了各种方法在正在运行的容器中执行此操作(似乎突然失败了),还尝试了在docker-compose.yml中添加各种“ user:...”,但没有成功。如果无法设置或修改共享卷的所有者,则Wordpress无法写入该共享卷。
一种可能的解决方案可能是在开发过程中使用挂载的卷(即,在Windows主机上的Sublime中编写代码时),然后在需要授予Wordpress写权限(例如,更新插件或添加媒体-基本上在实际需要运行时进行)。听起来很恐怖,但似乎我的选择有限。
如果有人有任何其他建议,仍然会喜欢Windows良好的工作流程。我希望有一种方法可以更改容器中已安装卷的所有者。我还没有找到任何明确的说法说这是不可能的,所以我希望对此有所指导。
答案 0 :(得分:0)
这里有两个选项:
user: root
以根用户身份启动容器。FROM wordpress
扩展wordpress
和RUN chmod -R 766 /var/www/html/wp-content
docker exec --user root -it <container> bash
手动进入当前运行的容器并运行chmod -R 766 /var/www/html/wp-content
。