# ¿Puede Discourse enviar imágenes Docker frecuentes que no necesiten ser inicializadas?

**URL:** https://meta.discourse.org/t/can-discourse-ship-frequent-docker-images-that-do-not-need-to-be-bootstrapped/33205
**Category:** Development
**Created:** [14 Septiembre, 2015 07:01 UTC](https://meta.discourse.org/t/can-discourse-ship-frequent-docker-images-that-do-not-need-to-be-bootstrapped/33205 "2015-09-14T07:01:52Z")
**Posts on this page:** 20
**Page:** 9

<div class="post-metadata">

### Author: ![codinghorror](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/codinghorror/32/110067_2.png) [@codinghorror](https://meta.discourse.org/u/codinghorror)
#### Post date: [27 Abril, 2021 19:45 UTC](https://meta.discourse.org/t/can-discourse-ship-frequent-docker-images-that-do-not-need-to-be-bootstrapped/33205/166 "2021-04-27T19:45:44Z")

</div>

¡Ay, qué trágico! Siento mucho escuchar eso ☹

---

<div class="post-metadata">

### Author: ![wzrdtales](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/wzrdtales/32/262073_2.png) [@wzrdtales](https://meta.discourse.org/u/wzrdtales)
#### Post date: [1 Junio, 2022 07:28 UTC](https://meta.discourse.org/t/can-discourse-ship-frequent-docker-images-that-do-not-need-to-be-bootstrapped/33205/167 "2022-06-01T07:28:54Z")

</div>

[https://meta.discourse.org/t/official-cloud-native-docker-image-from-discourse/228568/8](https://meta.discourse.org/t/official-cloud-native-docker-image-from-discourse/228568/8)

@sam y este tema dejan claro que esto nunca se resolverá, aunque bitnami acaba de hacerlo…

Al menos obtuvimos una respuesta a nuestra pregunta, que es no.

---

<div class="post-metadata">

### Author: ![frafra](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/frafra/32/179900_2.png) [@frafra](https://meta.discourse.org/u/frafra)
#### Post date: [20 Septiembre, 2022 10:40 UTC](https://meta.discourse.org/t/can-discourse-ship-frequent-docker-images-that-do-not-need-to-be-bootstrapped/33205/168 "2022-09-20T10:40:48Z")

</div>

¿Qué hay de evitar usar root en primer lugar? Usar `fakeroot` muestra que el principal obstáculo son las rutas codificadas (como /var). De lo contrario, excepto por los diversos errores y problemas que tiene la configuración actual, podría funcionar.

Es una lástima ver un software tan bueno con un procedimiento de configuración obligatorio tan mal diseñado, basado en una mala comprensión de la contenerización. Está claro para mí que se ha hecho con las mejores intenciones; aún así, el resultado es algo que no se puede implementar en ningún lugar fuera de un entorno de aficionado.

---

<div class="post-metadata">

### Author: ![pierreozoux](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pierreozoux/32/296611_2.png) [@pierreozoux](https://meta.discourse.org/u/pierreozoux)
#### Post date: [20 Septiembre, 2022 10:54 UTC](https://meta.discourse.org/t/can-discourse-ship-frequent-docker-images-that-do-not-need-to-be-bootstrapped/33205/169 "2022-09-20T10:54:43Z")

</div>

Nuestra imagen se ejecuta como usuario de discourse, y creo que la oficial también.

De todos modos, es genial que el mundo “corporativo” esté interesado, porque tiene mucho más tiempo/dinero que el del aficionado 😉 ¡Estoy seguro de que la comunidad apreciará tu contribución para mejorar el ecosistema!

---

<div class="post-metadata">

### Author: ![sam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sam/32/102149_2.png) [@sam](https://meta.discourse.org/u/sam)
#### Post date: [20 Septiembre, 2022 11:35 UTC](https://meta.discourse.org/t/can-discourse-ship-frequent-docker-images-that-do-not-need-to-be-bootstrapped/33205/170 "2022-09-20T11:35:21Z")

</div>

> [@frafra](#):
>
> el resultado es algo que no se puede implementar en ningún lugar fuera de un entorno de aficionados.

Esto ciertamente no es correcto, implementamos nuestra imagen usando nomad en flotas de máquinas, hay más de 10000 contenedores de discourse ejecutándose en aws y metal en este preciso instante.

---

<div class="post-metadata">

### Author: ![frafra](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/frafra/32/179900_2.png) [@frafra](https://meta.discourse.org/u/frafra)
#### Post date: [20 Septiembre, 2022 11:42 UTC](https://meta.discourse.org/t/can-discourse-ship-frequent-docker-images-that-do-not-need-to-be-bootstrapped/33205/171 "2022-09-20T11:42:13Z")

</div>

Las herramientas requieren acceso root para ejecutarse y necesitan tener acceso a /var del host.

A menudo colaboro con comunidades y empresas de código abierto para mejorar su configuración de contenedores. Estaría encantado de ayudar y/o considerar la financiación para tener una configuración contenerizada más razonable.

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [20 Septiembre, 2022 11:46 UTC](https://meta.discourse.org/t/can-discourse-ship-frequent-docker-images-that-do-not-need-to-be-bootstrapped/33205/172 "2022-09-20T11:46:09Z")

</div>

> [@frafra](#):
>
> Es una pena ver un software tan bueno con un procedimiento de configuración obligatoria tan mal diseñado.

No es obligatorio. Es solo que si necesitas ayuda para configurarlo, esa es la forma de hacerlo. He ayudado a clientes que usan gke, eks, ecs, por ejemplo. Puedes contactarme si necesitas ayuda con tus requisitos particulares.

/var no está codificado; trabajé recientemente con alguien que lo tenía en /var/www/discourse (lo que parecía una muy mala idea, ya que corre el riesgo de servir datos secretos a la web, pero era una “política”).

No está mal diseñado, está mal diseñado si tuvieras que diseñarlo hoy en lugar de hace una década. Fue un buen diseño en ese entonces, y todavía funciona para administrar su infraestructura e incluso para muchas personas que no saben nada de administración de sistemas.

---

<div class="post-metadata">

### Author: ![frafra](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/frafra/32/179900_2.png) [@frafra](https://meta.discourse.org/u/frafra)
#### Post date: [20 Septiembre, 2022 11:47 UTC](https://meta.discourse.org/t/can-discourse-ship-frequent-docker-images-that-do-not-need-to-be-bootstrapped/33205/173 "2022-09-20T11:47:11Z")

</div>

Supongo que no te basas en las herramientas oficiales como `discourse-setup`, que requiere ser root para ejecutarse y probablemente está pensada para una configuración local.

---

<div class="post-metadata">

### Author: ![Stephen](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/stephen/32/95011_2.png) [@Stephen](https://meta.discourse.org/u/Stephen)
#### Post date: [20 Septiembre, 2022 11:52 UTC](https://meta.discourse.org/t/can-discourse-ship-frequent-docker-images-that-do-not-need-to-be-bootstrapped/33205/174 "2022-09-20T11:52:26Z")

</div>

Echa un vistazo al código fuente de `discourse-setup`. Si estás familiarizado con la configuración y la optimización del rendimiento de Discourse, no es obligatorio.

Launcher hace todo el trabajo pesado para construir la imagen a partir del archivo yml resultante.

---

<div class="post-metadata">

### Author: ![frafra](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/frafra/32/179900_2.png) [@frafra](https://meta.discourse.org/u/frafra)
#### Post date: [20 Septiembre, 2022 12:59 UTC](https://meta.discourse.org/t/can-discourse-ship-frequent-docker-images-that-do-not-need-to-be-bootstrapped/33205/175 "2022-09-20T12:59:39Z")

</div>

Todo se puede hacer, pero me parece un esfuerzo innecesario.

- Usa `fakeroot` antes de cada comando
- `/var` se puede cambiar editando el archivo yaml: `sed -i \"s;host: /var/discourse;host: $PWD/discourse;g\" containers/*.yml`
- `--skip-connection-test` (encontrado al mirar el código, porque el script no puede verificar la conexión si hay un proxy inverso)
- Veo algo relacionado con certbot que ya sé que tendré que averiguar cómo deshabilitar ya que la descarga SSL generalmente se realiza externamente
- Los puertos de `containers/app.yml` se pueden cambiar para que se usen puertos `>= 1024`, pero no parece ser suficiente: `Error starting userland proxy: error while calling PortManager.AddPort(): cannot expose privileged port 443`

No quiero ser desagradable, pero tener múltiples servicios ejecutándose en un solo contenedor siempre ha sido un mal diseño, ya que significa tener poca o ninguna forma de saber lo que está sucediendo con los servicios individuales, tener que configurar un mecanismo personalizado de análisis de registros fuera de Docker, sin healthchecks útiles, no poder depender fácilmente de una base de datos externa, etc. Se puede hacer si es el único servicio que ejecuta en su negocio, pero si cada otro servicio comienza a hacerlo, la mayoría de los beneficios de usar contenedores simplemente desaparecen.

Estaría feliz de enviar algunas PR y documentación para que Discourse funcione en un entorno compatible con Docker sin acceso root, pero desacoplar los servicios y tener una configuración estándar sería una tarea grande sin garantía de que se incorpore al código principal.

---

<div class="post-metadata">

### Author: ![Stephen](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/stephen/32/95011_2.png) [@Stephen](https://meta.discourse.org/u/Stephen)
#### Post date: [20 Septiembre, 2022 13:12 UTC](https://meta.discourse.org/t/can-discourse-ship-frequent-docker-images-that-do-not-need-to-be-bootstrapped/33205/176 "2022-09-20T13:12:11Z")

</div>

Si no está de acuerdo con aspectos fundamentales de cómo está construido Discourse, ¿ha considerado usar un producto diferente?

---

<div class="post-metadata">

### Author: ![pierreozoux](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pierreozoux/32/296611_2.png) [@pierreozoux](https://meta.discourse.org/u/pierreozoux)
#### Post date: [20 Septiembre, 2022 13:38 UTC](https://meta.discourse.org/t/can-discourse-ship-frequent-docker-images-that-do-not-need-to-be-bootstrapped/33205/177 "2022-09-20T13:38:47Z")

</div>

Ok, lo entiendo mejor.

Discourse tiene una opinión firme sobre las herramientas para autoalojarse. Les permite brindar soporte eficiente a la mayoría de los administradores no tan experimentados que desean implementar Discourse. Puedes estar de acuerdo o no, yo también estuve un poco triste en el pasado, pero ahora lo entiendo mejor 🙂

Si tienes una necesidad diferente a la de una rápida puesta en marcha como la mayoría de la gente, entonces estás mayormente solo. Una vez que lo sabes, está bien 🙂

Tenemos la misma necesidad de una imagen Docker de Discourse independiente. La ejecutamos en Kubernetes con Minio, fue un poco complicado ponerla en marcha, y todavía requiere mucho esfuerzo. También recibimos una buena ayuda de Discourse para hacerlo.

Nuestro trabajo está disponible aquí:

> **[Dockerfile · master · libre.sh / docker / discourse · GitLab](https://lab.libreho.st/libre.sh/docker/discourse/-/blob/master/Dockerfile)**
>
> https://forge.liiib.re/indiehost/libre.sh/images

[https://forge.liiib.re/indiehost/tech/infrastructure/charts/-/tree/master/discourse](https://forge.liiib.re/indiehost/tech/infrastructure/charts/-/tree/master/discourse)  
(no está suficientemente documentado, ni probado, ni mantenido o actualizado a tiempo, ni automatizado, y probablemente un poco personalizado, es lo que es)  
Si la gente está interesada en mejorarlo, no dudes en venir y hacer un PR, o chatear aquí: [https://matrix.to/#/#libresh:liiib.re](https://matrix.to/#/#libresh:liiib.re)

Pero sí, el equipo de Discourse tiene una opinión firme sobre la versión comunitaria de Discourse. Puedes estar de acuerdo o no, pero brindan la mayor parte del soporte a la gente, y por lo poco que he visto, es un soporte increíble, así que creo que fue una buena decisión 🙂

---

<div class="post-metadata">

### Author: ![frafra](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/frafra/32/179900_2.png) [@frafra](https://meta.discourse.org/u/frafra)
#### Post date: [20 Septiembre, 2022 13:48 UTC](https://meta.discourse.org/t/can-discourse-ship-frequent-docker-images-that-do-not-need-to-be-bootstrapped/33205/178 "2022-09-20T13:48:03Z")

</div>

Estos son aspectos fundamentales de cómo se empaqueta Discourse, más que del propio Discourse, que es un gran software, pero tienes razón, debería considerar diferentes soluciones.

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [20 Septiembre, 2022 13:50 UTC](https://meta.discourse.org/t/can-discourse-ship-frequent-docker-images-that-do-not-need-to-be-bootstrapped/33205/179 "2022-09-20T13:50:35Z")

</div>

Puedes quitar las plantillas para postgres y redis (así como ssl y let’s encrypt) y usar las tuyas.

---

<div class="post-metadata">

### Author: ![frafra](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/frafra/32/179900_2.png) [@frafra](https://meta.discourse.org/u/frafra)
#### Post date: [20 Septiembre, 2022 13:52 UTC](https://meta.discourse.org/t/can-discourse-ship-frequent-docker-images-that-do-not-need-to-be-bootstrapped/33205/180 "2022-09-20T13:52:19Z")

</div>

Gracias por compartir. También encontré [GitHub - literatecomputing/docker-compose-discourse: Launch Discourse with docker-compose and similar](https://github.com/literatecomputing/docker-compose-discourse) e imágenes de bitnami. El principal problema es que estas soluciones no tienen soporte oficial. Me pregunto si podría ser una idea tener una configuración de Docker alternativa con soporte de la comunidad, en lugar de tener varios repositorios personalizados, ya que no sería eficiente distribuir el esfuerzo en varios lugares.

---

<div class="post-metadata">

### Author: ![frafra](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/frafra/32/179900_2.png) [@frafra](https://meta.discourse.org/u/frafra)
#### Post date: [20 Septiembre, 2022 13:56 UTC](https://meta.discourse.org/t/can-discourse-ship-frequent-docker-images-that-do-not-need-to-be-bootstrapped/33205/181 "2022-09-20T13:56:09Z")

</div>

Tienes razón, la configuración se puede cambiar efectivamente. Si consigo que funcione sin un gran esfuerzo, intentaré enviar algunas PR para mejorar las herramientas o la documentación existentes, como ejecutarlo sin permisos de root. Eso debería ser compatible con las opiniones del equipo de desarrollo, al tiempo que brinda cierto alivio a algunos administradores de sistemas más exigentes.

---

<div class="post-metadata">

### Author: ![henvo](https://avatars.discourse-cdn.com/v4/letter/h/dfb087/32.png) [@henvo](https://meta.discourse.org/u/henvo)
#### Post date: [18 Mayo, 2024 08:23 UTC](https://meta.discourse.org/t/can-discourse-ship-frequent-docker-images-that-do-not-need-to-be-bootstrapped/33205/182 "2024-05-18T08:23:25Z")

</div>

9 años después, ¿parece que Docker idiomático está cubierto por [el discurso de Bitnami](https://hub.docker.com/r/bitnami/discourse/)?

Pero en otros lugares de este foro hay afirmaciones de que consume mucha memoria y no tiene soporte. Me sorprendió ver cuánta fricción todavía existe en la configuración canónica al intentar ponerlo en funcionamiento en la nube.

Muchos servicios hoy en día como redis, postgres y almacenamiento compatible con s3 son fáciles de configurar y mover entre diferentes hosts como digitalocean, supabase, aws, etc., por lo que el backend es portátil. La VM que ejecuta Discourse parece que también debería ser fácil de escalar/intercambiar con compilaciones deterministas. Es una pena que esté tan cerca de este ideal pero se vea frenado.

Como dijo otro usuario, esto es sorprendente:

> [@AquaL1te](#):
>
> nunca he visto un proyecto que sea capaz de hacer que una instalación de contenedor no sea portátil de esta manera.

La lógica aludida anteriormente en el hilo de que hacer esto más fácil podría obstaculizar oportunidades comerciales es extraña. Los intereses comerciales tendrán personal para lidiar con las compilaciones complejas, por lo que esto afecta más a los desarrolladores individuales que a nadie. Mi caso de uso personal es que dirijo una comunidad muy grande (sin fines de lucro). Por lo tanto, no entra en la categoría de aficionado por escala ni comercial por ingresos.

---

<div class="post-metadata">

### Author: ![wojtek](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/wojtek/32/511127_2.png) [@wojtek](https://meta.discourse.org/u/wojtek)
#### Post date: [5 Julio, 2025 12:12 UTC](https://meta.discourse.org/t/can-discourse-ship-frequent-docker-images-that-do-not-need-to-be-bootstrapped/33205/184 "2025-07-05T12:12:23Z")

</div>

Eh… estoy pensando en configurar un foro/tablón de comunidad y obviamente pensé en usar Discourse (porque disfruto la experiencia del usuario final), pero de nuevo me encontré con el obstáculo de una instalación/gestión completamente hostil…  
A lo largo de los años me he vuelto súper aficionado a tener todo funcionando con un simple archivo docker-compose, añadiendo un par de elementos adicionales (base de datos, minio para almacenamiento compatible con s3 y demás), pero no… Discourse sigue siendo súper hostil en este caso.  
Lo siento, pero ¿tener algún “lanzador” tonto para iniciar las cosas?  
Y luego el proceso de actualización que dice:

> Crea una nueva imagen base manualmente ejecutando: `./launcher rebuild my_image`

lo siento, ¿reconstruir manualmente la imagen? Como WTF… es como tener/usar docker pero en realidad no usarlo…

---

<div class="post-metadata">

### Author: ![NateDhaliwal](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/natedhaliwal/32/313494_2.png) [@NateDhaliwal](https://meta.discourse.org/u/NateDhaliwal)
#### Post date: [5 Julio, 2025 13:38 UTC](https://meta.discourse.org/t/can-discourse-ship-frequent-docker-images-that-do-not-need-to-be-bootstrapped/33205/185 "2025-07-05T13:38:26Z")

</div>

¿Funciona `./launcher rebuild app`? Ese es el comando habitual.

Además, ¿seguiste la guía de instalación estándar?

---

<div class="post-metadata">

### Author: ![Jagster](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jagster/32/192154_2.png) [@Jagster](https://meta.discourse.org/u/Jagster)
#### Post date: [5 Julio, 2025 15:53 UTC](https://meta.discourse.org/t/can-discourse-ship-frequent-docker-images-that-do-not-need-to-be-bootstrapped/33205/186 "2025-07-05T15:53:49Z")

</div>

No tengo nada constructivo que comentar, así que te pido que intentes actualizar el servidor de Mastodon, Pixelfed, Moodle… Discourse **es** increíblemente fácil.

Un comando manual es un obstáculo 😳

[Previous page](https://meta.discourse.org/t/can-discourse-ship-frequent-docker-images-that-do-not-need-to-be-bootstrapped/33205.md?page=8)

[Next page](https://meta.discourse.org/t/can-discourse-ship-frequent-docker-images-that-do-not-need-to-be-bootstrapped/33205.md?page=10)
