Como corrigir docker wpcli Warning: Failed to create directory "/var/www/html/wp-content/upgrade/..."

Problema:

Ao tentar atualizar um plugin ou ação similar usando a imagem docker wordpress:cli wpcli, por exemplo usando um comando como

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

você vê uma mensagem de erro 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).

Solução

Este erro ocorre porque a imagem wordpress (sem :cli!) é baseada em Debian e a imagem wordpress:cli é baseada em Alpine Linux. Debian usa o UID 33 para o usuário www-data enquanto Alpine Linux usa 83. Então para corrigir o problema de permissão, você precisa forçar a imagem cli a usar 33:

Isso está documentado na página docker do 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