Imagen con Nginx y Certbot para la implementación en contenedores. Certificados auto gestionables.
10K+
Referencia Rápida
Mantenido Por: PINDU
El código proporcionado se ofrece "tal cual", sin garantía de ningún tipo, expresa o implícita. En ningún caso los autores o titulares de derechos de autor serán responsables de cualquier reclamo, daño u otra responsabilidad.
Si encuentras útil este proyecto y deseas contribuir a su mantenimiento, considera hacer una donación. Tu apoyo es muy apreciado.
Este artículo presenta una solución basada en Docker para desplegar servidores web Nginx con programación automatizada de tareas cron y gestión de certificados SSL de Let's Encrypt. Se proporciona el Dockerfile y la configuración de Docker Compose que demuestran la instalación de paquetes necesarios, la configuración de tareas cron, y la integración con Let's Encrypt para la provisión automática y renovación de certificados SSL. Las características principales incluyen el uso de Alpine Linux para minimizar el tamaño de la imagen, gestión de volúmenes para la persistencia de registros, y sustitución de variables de entorno para la plantilla de configuración de Nginx. La solución tiene como objetivo simplificar el despliegue y mantenimiento de servidores web Nginx seguros en entornos en la nube.
Para utilizar con un docker-compose.yml
Creamos un archivo .env
SERVER_NAME=example.com
BACKEND=backend
PORT=80
Creamos el archivo docker-compose.yml
services:
nginx:
image: pindu/nginx:${TAG:-latest}
restart: unless-stopped
ports:
- 80:80
- 443:443
volumes:
- ./sites-enabled:/etc/nginx/conf.d
- letsencrypt:/etc/letsencrypt/
volumes:
letsencrypt:
Modificar el archivo según sea necesario ./templates/default.conf.template
upstream backend {
least_conn;
server ${BACKEND}:${PORT};
}
server {
server_name ${SERVER_NAME};
client_max_body_size 100M;
location / {
proxy_pass http://backend;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
}
}
Dockerfile de la imagen
FROM nginx:alpine
# Instalar dependencias en una sola capa y limpiar caché de APK
RUN apk add --no-cache \
certbot \
certbot-nginx \
bash \
openssl \
&& mkdir -p /run/nginx /var/www/html /etc/letsencrypt
# Exponer puertos HTTP y HTTPS
EXPOSE 80 443
# Comando por defecto para iniciar Nginx en primer plano
CMD ["nginx", "-g", "daemon off;"]
Content type
Image
Digest
sha256:83c6e41c1…
Size
47.4 MB
Last updated
about 2 months ago
docker pull pindu/nginx