Développement WordPress local avec devicebox dans docker
Soulevez la boîte d’équipement. C’est très simple. Cloner le dépôt et copier le fichier. Exemple d’environnement:
$GIT clone https:\/\/github.com\/cytopia\/devilbox Exemple d’environnement $CD Device Box \/ $CP. Donc nous devons exécuter le script Mettre à jour docker. SH, qui extrait essentiellement toutes les images docker nécessaires: $ Mettre à jour docker. Nous devons donc configurer devilbox. La documentation de devilbox détaille tous les différents paramètres que nous pouvons modifier, mais la plupart des paramètres par défaut s’appliquent à notre situation. Vous devrez peut – être modifier certains paramètres dans le fichier. ENV: TLD _ suffixe – par défaut, devicebox est utilisé. Loc comme suffixe de domaine. N’oubliez pas que si vous utilisez chrome, c’est TLD. Dev n’est pas recommandé. Fuseau horaire – fuseau horaire dans le fuseau horaire local. Host _ path httpd datair – l’emplacement du dossier du site pour l’hôte virtuel automatique. N’oubliez pas que vous pouvez sélectionner les images docker à utiliser pour votre service en décodant les lignes correctes dans le fichier. Environnement. Par défaut, devilbox utilise PHP – fpm – 7.1, nginx – stable et mariadb – 10.1, ce qui est bien pour notre objectif.
Nous sommes enfin prêts à lancer devilbox. Si vous souhaitez exécuter tous les services configurés avec devilbox (par exemple bIND, PHP, Apache \/ nginx, MySQL, PostgreSQL, redis, Memcached, mongodb), vous n’avez qu’à exécuter: $docker composer up – D, mais dans notre cas, nous n’avons pas besoin de services tels que PostgreSQL, mongodb, etc. Donc nous ne pouvons exécuter ce dont nous avons besoin qu’en les spécifiant: $docker composer up – D BIND httpd PHP MySQL redis OK, maintenant nous devrions être en mesure de l’exécuter! Vous pouvez amarrer composer PS pour vérifier à nouveau que tout le contenu est démarré et en cours d’exécution. Si vous visitez http:\/\/localhost Vous devriez également voir une bonne page d’état montrant l’état de tous les services en cours d’exécution et leur configuration.
Ajout d’un site en raison de la fonction \
Dans le cas des conteneurs, les modifications apportées aux documents doivent être réduites au minimum. Un des problèmes que j’ai rencontré lors du développement de sites dans devilbox est ce qui se passe lorsque vous voulez lier symboliquement des dossiers à une installation WordPress (par exemple, si vous développez un plug – in personnalisé hébergé ailleurs sur votre ordinateur). En général, vous devriez lier symboliquement le répertoire plug – in personnalisé au Répertoire de contenu \/ plug – in WP, puis vous serez configuré. Cela ne fonctionne pas avec devilbox, car docker ne supporte pas actuellement la construction de fichiers liés symboliquement en dehors du contexte.
Pour résoudre ce problème, vous devez modifier le fichier de composition du docker. Yml et ajouter des répertoires de plug – ins personnalisés comme volumes aux services PHP et https: PHP:… Volume:… \/ Path \/ to \/ Custom plugin: \/ shared \/ httpd \/ wordpress \/ htdocs \/ WP content \/ plugins \/ Custom plugin ce n’est pas une solution idéale, mais elle résout le problème. Communication avec des hôtes externes un autre problème que j’ai rencontré lors du développement d’un site dans devilbox était ce qui se passait lorsque vous vouliez vous connecter à un autre site hébergé ailleurs sur votre machine (par exemple, sur un autre réseau docker ou VM, etc.). Par exemple, dans mon exemple, j’héberge l’application mergebot sur un réseau docker séparé, mais j’ai besoin d’installer le plug – in mergebot sur mon site devilbox pour me connecter à l’application. Dans mon \/ etc \/ hosts sur l’hôte, j’ai une entrée:
127.0.0.1 application. Mergebot. Loc mais si je me connecte au conteneur PHP et que j’essaie de Ping l’application. Mergebot. Loc renvoie l’adresse IP du conteneur PHP dans le réseau devilbox. Ce dont j’ai vraiment besoin, c’est de trouver l’adresse IP de l’hôte sur le réseau (en exécutant ipconfig getifaddr en0) et d’ajouter une entrée dans le conteneur \/ etc \/ hosts pour qu’il fonctionne. Cependant, comme décrit ci – dessus, modifiez le fichier sur un entier
Développement local? Envisagez – vous de passer à un environnement de développement basé sur docker? Avez – vous des suggestions pour docker et WordPress?