Mi organización ejecuta una aplicación web y un foro, además de otras aplicaciones como Bitwarden. He containerizado todo para lograr paridad entre desarrollo y producción y una configuración de desarrollo sencilla usando Docker Compose. Utilizamos un archivo compose muy similar para ejecutarlo en producción y funciona muy bien para nuestro caso de uso básico.
Me gustaría migrar nuestro foro a Discourse, pero tengo dificultades para entender cómo mantener la paridad entre desarrollo y producción y una configuración de desarrollo sencilla.
La documentación sugiere que, aunque Discourse utiliza Docker para instalar y ejecutar, no encaja realmente en el paradigma de contenedores como otros contenedores de Docker: no puedes agregarlo a una pila de compose/swarm/kubernetes y ejecutarlo, conectándolo a contenedores de base de datos y Redis como harías con otro contenedor de aplicación. Además, se desalienta fuertemente el uso de soluciones o sugerencias alternativas para evitar dividir a la comunidad, así que no estoy aquí para cuestionar este enfoque.
He aceptado que, en lugar de ejecutar y gestionar Discourse como lo hago con el resto de mi pila, tendré que ejecutar una máquina virtual dedicada en producción y gestionarla de manera diferente. Pero me interesa saber cómo abordar mis objetivos subyacentes: una configuración de desarrollo sencilla que tenga una paridad decente con la producción.
Como contexto, mi configuración actual de desarrollo es “instalar Docker, clonar este repositorio y ejecutar docker-compose up”. Si he entendido correctamente según la guía de instalación local, ahora necesitaremos 9 dependencias del sistema (Ruby, PostgreSQL, etc.) antes de clonar y configurar manualmente Discourse en sí. En mi opinión, una de las ventajas de Docker (y Docker Compose) es que no necesitas tener cosas como PostgreSQL y Redis ejecutándose en tu sistema (y los problemas asociados con su configuración cuando los desarrolladores usan Windows); simplemente puedes ejecutar una pila y los procesos están aislados en contenedores desechables. ¿Existe alguna forma de mantener esa ventaja?
La otra desventaja es que, como somos un pequeño equipo de voluntarios, la mayoría de los demás desarrolladores usan Windows 10 Home, que, hasta donde sé, no soporta WSL, lo que significa que no podrán seguir las instrucciones de instalación para Windows de todos modos (Docker sí funciona en Windows 10 Home).