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

12

Je commence avec Docker et je suis encore nouveau dans les pratiques de développement WordPress professionnelles. Je voudrais mettre en place un environnement de développement Docker (sur mon Mac) afin de pouvoir faire du développement de thème WordPress personnalisé.

En supposant que vous l'ayez déjà fait et que vous utilisez déjà Docker, comment avez-vous configuré cela? À quoi ressemblent votre Dockerfile et docker-compose.yml? Je suis sûr que cela a déjà été fait. Je ne serais pas surpris s'il existe déjà une commande sur une seule 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é?

Andrew
la source
Je viens de supprimer deux réponses de lien uniquement. Comme votre question comporte 8 votes positifs, cela vous dérangerait-il de la réduire à une seule question qui peut être résolue?
kaiser
@kaiser "Développement WordPress professionnel" n'est pas très bien documenté, donc beaucoup de gens (y compris moi-même) essaient d'apprendre à travailler avec WordPress de manière professionnelle pour développer et déployer des thèmes WordPress personnalisés. L'utilisation de Docker permet de créer un environnement qui reflète l'environnement de production, mais c'est aussi un nouveau territoire, donc j'aimerais savoir comment les gens intègrent Docker dans leur flux de travail de développement WordPress.
Andrew
Andrew, veuillez jeter un œil à ce texte pour voir quel genre de questions nous gardons ouvertes sur ce site. En l'état, votre question est très subjective, ouverte et n'attire que des réponses basées sur des opinions ou des liens uniquement. Veuillez changer cela, sinon nous devrons fermer la question. Merci.
kaiser
@kaiser D'accord, j'ai fait de mon mieux pour changer cela pour être une question plus ciblée.
Andrew

Réponses:

7

Je vais poster une réponse partielle pour commencer la discussion dans l'espoir d'obtenir des commentaires utiles pour remplir 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 dans une machine virtuelle Linux. Vous pouvez installer en boot2dockerutilisant 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 souhaiterez peut-être ajouter les lignes qui exportent des variables vers votre ~/.bash_profileafin que vous n'ayez pas à exécuter la commande à chaque fois que vous ouvrez une nouvelle fenêtre de terminal.

Étape 2: installer docker-compose

Il existe un plugin Docker appelé docker-compose( appelé à l' origine fig) qui facilite la définition de la relation entre vos conteneurs Docker. Vous pouvez également l'installer en utilisant Homebrew:

brew install docker-compose

Étape 3: créer docker-compose.yml

Il y a une image officielle de WordPress Docker dans le registre Docker. Il comprend 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 parce que nous utiliserons docker-compose. Dans le répertoire où vous travaillerez sur votre thème WordPress, créez un docker-compose.ymlavec 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 volumesconfiguration relie nos fichiers de thème dans notre répertoire actuel à un nouveau répertoire de thème à l'intérieur du conteneur Docker.

Étape 4: démarrez les conteneurs

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

Étape 5: Ouvrez le site dans le navigateur

Notre docker-compose.ymlconfiguration a spécifié que nous transmettons le port 80 au port 8080. Exécute également boot2dockersa machine virtuelle sur une adresse IP spécifique. Ainsi, pour comprendre l'URL, nous devons utiliser la boot2docker ipcommande:

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 en utilisant un .devdomaine nommé au lieu de travailler avec des ports / IP spécifiques. Comment puis-je configurer mon système (ou Pow) pour pouvoir 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 qui devraient être ajoutées à la fin?

Andrew
la source
Pour votre deuxième question. Vous pouvez essayer le proxy docker nginx: github.com/jwilder/nginx-proxy .
Zhe Li
0

Ma solution préférée est d'utiliser Composer en combinaison avec Docker. Docker gère l'environnement, Composer gère les dépendances, qui incluent les thèmes, les plugins 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 themesrépertoire:

https://github.com/alexmacarthur/wp-skateboard/tree/starter-theme-underscores

Alex MacArthur
la source