Je commence à utiliser Docker et je suis encore novice dans les pratiques de développement professionnel WordPress. Je souhaite configurer un environnement de développement Docker (sur mon Mac) afin de pouvoir développer des thèmes WordPress personnalisés.
En supposant que vous ayez déjà fait cela et que vous utilisiez déjà Docker, comment l'avez-vous configuré? À quoi ressemblent vos fichiers Docker et docker-compose.yml? Je suis sûr que cela a déjà été fait. Je ne serais pas surpris s'il y a déjà une commande d'une ligne qui peut configurer cela pour vous.
Mise à jour: J'ai limité ce sujet à la question suivante:
Je vais poster une réponse partielle pour commencer la discussion dans l’espoir d’obtenir quelques commentaires utiles pour compléter les blancs ou les réponses alternatives ...
Docker ne fonctionne que sous Linux. Donc, pour utiliser Docker sur notre Mac, nous devons installer boot2docker
, qui exécutera Docker sur une machine virtuelle Linux. Vous pouvez installer boot2docker
en utilisant Homebrew :
brew install boot2docker
Une fois l'installation terminée, configurez et démarrez boot2docker:
boot2docker init
boot2docker start
Ensuite, nous devons exécuter une commande pour configurer certaines variables d’environnement afin que docker-compose sache trouver Docker dans notre machine virtuelle boot2docker.
eval "$(boot2docker shellinit)"
Vous voudrez peut-être ajouter les lignes qui exportent des variables à votre ~/.bash_profile
afin de ne pas avoir à exécuter la commande à chaque fois que vous ouvrez une nouvelle fenêtre de terminal.
Il existe un plug-in Docker appelé docker-compose
(appelé à l'origine fig
) qui facilite grandement la définition de la relation entre vos conteneurs Docker. Vous pouvez également l'installer avec Homebrew:
brew install docker-compose
Il y a une image officielle de WordPress Docker dans le registre de Docker. Il contient des informations sur le démarrage manuel de Docker avec tous les indicateurs de ligne de commande nécessaires pour que tout fonctionne. Autant que je sache, vous pouvez ignorer tout cela, car nous allons utiliser docker-compose
. Dans le répertoire dans lequel vous travaillerez sur votre thème WordPress, créez un docker-compose.yml
avec le contenu suivant:
wordpress:
image: wordpress
links:
- db:mysql
ports:
- 8080:80
volumes:
- .:/var/www/html/wp-content/themes/my-theme-name
db:
image: mariadb
environment:
MYSQL_ROOT_PASSWORD: example
La configuration volumes
relie nos fichiers de thème de notre répertoire actuel à un nouveau répertoire de thème dans le conteneur Docker.
Exécutez docker-compose up
et vous configurerez deux conteneurs Docker ("wordpress" et "db") exécutant une installation de WordPress.
Notre configuration docker-compose.yml
spécifie que nous transférons le port 80 au port 8080. De plus, boot2docker
exécute son VM sur une adresse IP spécifique. Ainsi, pour comprendre l'URL, nous devons utiliser la commande boot2docker ip
:
open http://$(boot2docker ip):8080
Maintenant que les conteneurs sont opérationnels, j'ai quelques questions ...
Existe-t-il un moyen automatisé de configurer les variables d'environnement boot2docker, autre que copier et coller les exportations répertoriées dans boot2docker shellinit
?
Lorsque je travaille sur une application Rails, j'aime utiliser Pow pour pouvoir accéder à l'application à l'aide d'un domaine nommé .dev
au lieu de travailler avec des ports/IP spécifiques. Comment puis-je configurer mon système (ou Pow) afin que je puisse accéder à l'hôte à l'aide de http://mysite.dev ?
Y a-t-il des étapes que j'ai manquées? Ou y a-t-il des étapes à ajouter à la fin?
Ma solution préférée pour cela consiste à utiliser Composer en association avec Docker. Docker gère l'environnement, Composer gère les dépendances, ce qui inclut les thèmes, les plug-ins et tous les autres packages dont j'ai besoin.
Voici ma propre configuration Docker locale:
https://github.com/alexmacarthur/wp-skateboard
Et voici une branche qui utilise Composer pour télécharger le thème _s et le placer dans mon répertoire themes
:
https://github.com/alexmacarthur/wp-skateboard/tree/starter-theme-underscores