À des fins de développement, je dois configurer une installation de WordPress dans un conteneur Docker.
J'ai trouvé et suis ce tutorial .
Tout fonctionne bien, avec toute la sécurité et l'optimisation. Mais le tutoriel est basé sur WordPress 4.5.2. Et lorsque tout est configuré, je ne peux pas mettre à jour WordPress à cause d’une autorisation refusée. Bien sûr, j'ai modifié moi-même le fichier Dockerfile pour obtenir WordPress 4.7, mais je ne pourrai pas effectuer la prochaine mise à jour.
De plus, si je dois installer un plug-in, il échoue car il ne peut pas créer le dossier dans mon volume. Si je mkdir -p
les dossiers tout fonctionne bien.
Voici le GitHub avec tous les fichiers.
Donc, je pense que tout est lié mais je ne peux pas le réparer. Une idée ?
Le problème, comme l'indique la description de l'erreur, concerne les autorisations. D'après ce tutoriel, nginx est exécuté sous l'utilisateur www-data
, mais les dossiers WP appartiennent à deployer
. Si vous changez la propriété de votre $ WP_ROOT en www-data: www-data, vous constaterez que vous pouvez mettre à jour votre WP. Je ne suis pas génial en sécurité, alors il y a peut-être une meilleure façon, mais celle-ci travaillera pour la mettre à jour. Dans le commentaire du didacticiel, ils ont fait cette modification de sécurité à dessein, alors peut-être que ce n'est pas une bonne idée. Pas sûr à ce niveau de détail.
En plus de cette modification, cette mise à jour ne persistera pas si vous éteignez l'instance de docker. Vous devrez mettre à jour votre instance WP à chaque redémarrage du conteneur. Il peut être judicieux de placer les fichiers WP dans un volume afin que WP puisse mettre à jour les fichiers si nécessaire et qu'ils persistent. Cela aurait également un sens puisque la base de données persiste et fait de toute façon partie de la mise à niveau. Mais ces décisions en matière de sécurité dépassent mon salaire.