Cómo solucionar el warning de docker wpcli: Failed to create directory "/var/www/html/wp-content/upgrade/..."

Problema:

Al intentar actualizar un plugin o acción similar usando la imagen docker wordpress:cli wpcli, por ejemplo usando un comando como

docker_wpcli_update.sh
docker-compose exec wpcli wp plugin update google-sitemap-generator

ves un mensaje de error como

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).

Solución

Este error ocurre porque la imagen wordpress (sin :cli!) está basada en Debian y la imagen wordpress:cli está basada en Alpine Linux. Debian usa el UID 33 para el usuario www-data mientras que Alpine Linux usa 83. Así que para solucionar el problema de permisos, necesitas forzar la imagen cli a usar 33:

Esto está documentado en la página docker de wordpress.

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

Echa un vistazo a artículos similares por categoría: Docker WordPress