如何修复 docker wpcli Warning: Failed to create directory "/var/www/html/wp-content/upgrade/..."
问题:
当尝试使用 wordpress:cli wpcli docker 镜像更新插件或类似操作时,例如使用命令
docker_wpcli_update.sh
docker-compose exec wpcli wp plugin update google-sitemap-generator你会看到类似这样的错误消息
wpcli_warning.txt
Warning: Failed to create directory. "/var/www/html/wp-content/upgrade/google-sitemap-generator.4.1.16"
+--------------------------+-------------+-------------+--------+
| name | old_version | new_version | status |
+--------------------------+-------------+-------------+--------+
| google-sitemap-generator | 4.1.13 | 4.1.16 | Error |
+--------------------------+-------------+-------------+--------+
Error: No plugins updated (1 failed).解决方案
此错误发生是因为 wordpress 镜像(不带 :cli!)基于 Debian,而 wordpress:cli 镜像基于 Alpine Linux。Debian 使用 UID 33 作为 www-data 用户,而 Alpine Linux 使用 83。所以要修复权限问题,你需要强制 cli 镜像使用 33:
这在 wordpress docker 页面 上有文档记录。
docker_wpcli_update.sh
docker-compose exec -e HOME=/tmp --user 33:33 wpcli wp plugin update google-sitemap-generatorIf this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow