web-dev-qa-db-fra.com

Comment configurer Docker pour développer et déployer un thème personnalisé?

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:

Comment configurer Docker pour développer et déployer un thème personnalisé?

12
Andrew

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

Étape 1: Installer et configurer boot2docker

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.

Étape 2: Installez docker-compose

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

Étape 3: Créez docker-compose.yml

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.

Étape 4: Démarrer les conteneurs

Exécutez docker-compose up et vous configurerez deux conteneurs Docker ("wordpress" et "db") exécutant une installation de WordPress.

Étape 5: Ouvrez le site dans le navigateur.

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

Des questions

Maintenant que les conteneurs sont opérationnels, j'ai quelques questions ...

  1. 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?

  2. 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 ?

  3. Y a-t-il des étapes que j'ai manquées? Ou y a-t-il des étapes à ajouter à la fin?

7
Andrew

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

0
Alex MacArthur