Как исправить docker wpcli Warning: Failed to create directory "/var/www/html/wp-content/upgrade/..."

Проблема:

При попытке обновить плагин или подобном действии с использованием docker-образа wordpress:cli wpcli, например, командой

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:

Это задокументировано на docker-странице wordpress.

docker_wpcli_update.sh
docker-compose exec -e HOME=/tmp --user 33:33 wpcli wp plugin update google-sitemap-generator

Check out similar posts by category: Docker Wordpress