Як виправити 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

Дивіться схожі статті за категоріями: Docker WordPress