¿Cómo puedo configurar Docker para desarrollar e implementar un tema personalizado?

12

Estoy comenzando con Docker y todavía soy nuevo en las prácticas profesionales de desarrollo de WordPress. Me gustaría configurar un entorno de desarrollo de Docker (en mi Mac) para poder desarrollar temas personalizados de WordPress.

Suponiendo que haya hecho esto antes y ya esté usando Docker, ¿cómo configuró esto? ¿Cómo se ven su Dockerfile y docker-compose.yml? Estoy seguro de que esto se ha hecho antes. No me sorprendería si ya hay un comando de una línea que puede configurar esto para usted.

Actualización: he reducido este tema a la siguiente pregunta:

¿Cómo puedo configurar Docker para desarrollar e implementar un tema personalizado?

Andrés
fuente
Solo tuve que eliminar dos enlaces solo respuestas. Como su pregunta tiene 8 votos a favor, ¿le importaría reducirla a una pregunta que tenga solución?
kaiser
@kaiser El "desarrollo profesional de WordPress" no está muy bien documentado, por lo que muchas personas (incluido yo mismo) estamos tratando de aprender a trabajar con WordPress de manera profesional para desarrollar e implementar temas personalizados de WordPress. El uso de Docker ayuda a crear un entorno que refleja el entorno de producción, pero también es un territorio nuevo, por lo que me gustaría saber cómo las personas están incorporando Docker en su flujo de trabajo de desarrollo de WordPress.
Andrew
Andrew, mira este texto para ver qué tipo de preguntas mantenemos abiertas en este sitio. Tal como está, su pregunta es muy subjetiva, abierta y solo atrae respuestas basadas en opiniones o solo enlaces. Cambie eso, de lo contrario tendremos que cerrar la pregunta. Gracias.
kaiser
@kaiser Ok, he hecho mi mejor intento de cambiar esto para que sea una pregunta más centrada.
Andrew

Respuestas:

7

Voy a publicar una respuesta parcial para comenzar la discusión con la esperanza de obtener algunos comentarios útiles para completar los espacios en blanco o respuestas alternativas ...

Paso 1: Instalar y configurar boot2docker

Docker solo se ejecuta en Linux. Entonces, para usar Docker en nuestra Mac, necesitamos instalar boot2docker, que ejecutará Docker en una VM Linux. Puedes instalar boot2dockerusando Homebrew :

brew install boot2docker

Una vez que haya terminado la instalación, configure e inicie boot2docker:

boot2docker init
boot2docker start

A continuación, debemos ejecutar un comando para configurar algunas variables de entorno para que docker-compose sepa encontrar Docker dentro de nuestra máquina virtual boot2docker.

eval "$(boot2docker shellinit)"

Es posible que desee agregar las líneas que exportan variables a su ~/.bash_profilepara que no tenga que ejecutar el comando cada vez que abra una nueva ventana de terminal.

Paso 2: Instalar docker-compose

Hay un complemento Docker llamado docker-compose(originalmente llamado fig) que hace que sea realmente fácil definir la relación entre sus contenedores Docker. También puedes instalarlo usando Homebrew:

brew install docker-compose

Paso 3: crea docker-compose.yml

Hay una imagen oficial de WordPress Docker en el registro de Docker. Incluye información sobre cómo iniciar Docker manualmente con todos los indicadores de línea de comando necesarios para que todo funcione. Por lo que puedo decir, puedes saltarte todo eso porque lo usaremos docker-compose. En el directorio donde trabajará en su tema de WordPress, cree un archivo docker-compose.ymlcon los siguientes contenidos:

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 volumesconfiguración vincula nuestros archivos de temas en nuestro directorio actual a un nuevo directorio de temas dentro del contenedor Docker.

Paso 4: iniciar los contenedores

Ejecute docker-compose upy configurará dos contenedores Docker ("wordpress" y "db") ejecutando una instalación de WordPress.

Paso 5: abra el sitio en el navegador

Nuestra docker-compose.ymlconfiguración especificó que reenviamos el puerto 80 al puerto 8080. Además, boot2dockerejecuta su VM en una dirección IP específica. Por lo tanto, para descubrir la URL, necesitamos usar el boot2docker ipcomando:

open http://$(boot2docker ip):8080

Preguntas

Ahora que tengo los contenedores en funcionamiento, tengo algunas preguntas ...

  1. ¿Existe una forma automatizada de configurar las variables de entorno boot2docker, aparte de copiar y pegar las exportaciones enumeradas boot2docker shellinit?

  2. Cuando estoy trabajando en una aplicación Rails, me gusta usar Pow para poder acceder a la aplicación usando un .devdominio con nombre en lugar de trabajar con puertos / IP específicos. ¿Cómo puedo configurar mi sistema (o Pow) para poder acceder al host usando http://mysite.dev ?

  3. ¿Hay algunos pasos que me perdí? ¿O hay pasos que deberían agregarse al final?

Andrés
fuente
Para tu segunda pregunta. Puede probar el proxy Docker nginx: github.com/jwilder/nginx-proxy .
Zhe Li
0

Mi solución preferida para esto es usar Composer en combinación con Docker. Docker maneja el entorno, Composer maneja las dependencias, que incluyen temas, complementos y cualquier otro paquete que pueda necesitar.

Aquí está mi propia configuración local de Docker:

https://github.com/alexmacarthur/wp-skateboard

Y aquí hay una rama que usa Composer para descargar el tema _s y colocarlo en mi themesdirectorio:

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

Alex MacArthur
fuente