Otro de los contenedores que utilizo de forma habitual es con el que sirvo las páginas de mi blog y otros recursos, también lo uso para redirigir trafico web a otros recursos externos a Caddy, un novedoso servidor web multiplataforma, capaz de servir HTTP/2, libre de dependencias, seguro por defecto, fácil de usar y apto para poner en producción gracias a su robustez. Sin duda su capacidad de servir en HTTPS mediante Let’s Encrypt y la sencillez a la hora de implementarlo es el punto fuerte de este servidor web.

Desde que lo descubrí hace más de dos años, lo utilizo como servidor web principal, tiempo en el que ha tenido un desempeño brillante, con cero interrupciones y problemas, fue uno de mis primeros contenedores con los que empecé a experimentar en Docker, añadir esa capa de abstracción hace que esta extraordinaria herramienta sea aun mejor.

Por estos y muchos otros motivos decidí adaptarlo a la arquitectura arm8 o arm64 de mi última adquisición la Nvidia Jetson Nano.

Durante este tiempo he ido actualizando la imágen adaptándola a la nuevas versiones de Caddyserver que han ido surgiendo. Al principio mantenía dos versiones de la imágen, con soporte para servir PHP y sin él, con el paso de las nuevas versiones de Caddy la versión con PHP dejo de funcionar, por suerte en esta última versión he podido recuperar esa funcionalidad y además sin tener que crear una versión paralela, es decir, la misma versión puede incorporar o no esa funcionalidad y esto es gracias al uso de Docker Compose, después de darle unas cuantas vueltas me di cuenta que no era necesario incluir esa funcionalidad en la mismo contenedor, siendo fiel al concepto de arquitectura de microservicios tiene todo el sentido que el servicio “motor PHP” tenga su propio contenedor y que ambos puedan ser invocados mediante Docker Compose como un supracontenedor o “Pod” en el que ambos contenedores están configurados para trabajar conjuntamente.

GitHubDocker Hub
CaddyCaddy
Docker PullsDocker StarsSize/Layers

Espero os resulte tan útil como a mí.