Despliegue automático al entorno de producción

Hola,
Tengo Discourse instalado en dos máquinas virtuales de Azure separadas (staging y producción). ¿Hay alguna forma de implementar automáticamente los cambios del entorno de staging de Discourse al entorno de producción de Discourse?

Los cambios en la interfaz de usuario (tema) se gestionarán en un repositorio de Git, por lo que enviarlos a producción no será un problema. La principal preocupación radica en automatizar la implementación de la configuración y los ajustes de Discourse en el entorno de producción. ¿Cómo podemos lograr esto?

Puedes enviar el contenedor de staging a un repositorio y luego lanzarlo en producción. ./launcher start-cmd app te dará lo necesario para poner en marcha el contenedor en Docker.

También necesitarás migrar la base de datos (quizás con SKIP_POST_DEPLOYMENT_MIGRATIONS y luego de nuevo cuando el nuevo contenedor haya iniciado si quieres un tiempo de inactividad cero real) y precompilar los assets.

Algunas configuraciones viven en la base de datos. Otras se pueden configurar con variables de entorno como DISCOURSE_SETTING_NAME (por ejemplo, DISCOURSE_TITLE='mi gran comunidad').

2 Me gusta

Una estrategia más ligera es usar esto:

Observe el “solo mostrar anulado” en la parte superior derecha.

Eso le dará una lista de cosas que no son predeterminadas y que podría transferir manualmente.

Dependiendo de sus necesidades, esto podría ser más simple. (Dicho esto, tengo más de 100 configuraciones que no son predeterminadas en mi instancia de varios años).

app.yml se puede copiar parcialmente.

Por supuesto, eso no transferirá Categorías, etc.

¿Se puede lograr esto con un enfoque independiente, o necesito tener dos contenedores (uno para la base de datos y otro para la web)?

Si no eres un aficionado, recomiendo dos contenedores, ya que tienes que detener la base de datos cuando inicias un nuevo contenedor, por lo que no puedes tener tiempo de inactividad cero. Pero funcionaría con un solo contenedor.

1 me gusta