0

Actualizar Nginx Proxy Manager con Docker

Hola a tod@s,

En este post vamos a ver como Actualizar Nginx Proxy Manager con Docker.

  • Lo primero que vamos a ver es que versión de Nginx Proxy Manager tenemos instalada, para ello, ejecutamos docker exec nginxpm cat package.json | grep version:

  • Ahora actualizamos a la versión más reciente.
  • cd /opt/docker/nginxpm
  • docker compose pull nginxproxymanager
  • docker compose up -d
  • Descarga la nueva versión
  • Detiene el contenedor actual
  • Lo recrea con la nueva imagen, manteniendo toda la configuración, certificados, bases de datos, etc…
    porque están montados como volúmenes:
  • volumes:
  • /opt/docker/nginxpm/data:/data
  • /opt/docker/nginxpm/data/letsencrypt:/etc/letsencrypt
  • /opt/docker/nginxpm/certs:/opt/custom-certs:ro

  • Volvemos a ejecutar docker exec nginxpm cat package.json | grep version y vemos que tenemos actualizada a la última versión disponible de Nginx Proxy Manager:

  • Si hacemos un docker images vemos las imágenes disponibles en nuestro sistema y con docker ps -a vemos la imagen que está en uso para nuestro Nginx Proxy Manager:

  • Con docker rmi imageID podemos eliminar las imágenes que ya no están en uso, en este caso eliminamos la imagen antigua de Nginx Proxy Manager que ya no utilizamos:

 

  • Cuando actualizamos la versión de Nginx Proxy Manager, nos podemos encontrar con este error al renovar nuestros certificados de Let´s Encrypt, Internal error:

  • El problema viene dado por las versiones de certbot, que utilizan las nuevas versiones, certbot es el encargado de renovar nuestros certificados de Let’s Encrypt, para solucionarlo, en el fichero docker-compose.yaml debemos de agregar esta línea:

environment:

      – PIP_BREAK_SYSTEM_PACKAGES=1

  • Destruimos el contenedor con sudo docker compose down:

 

  • Lo levantamos de nuevo con la nueva variable de entorno, sudo docker compose up -d:

  • Inyectamos el bloque definitivo por última vez en caliente, sudo docker exec -it nginxpm bash:

 

/opt/certbot/bin/pip install –force-reinstall –no-cache-dir \

«cryptography==43.0.3» \

«pyOpenSSL==25.0.0» \

«josepy==1.15.0» \

«acme==3.3.0» \

«certbot==3.3.0» \

«certbot-dns-azure» \

«certbot-dns-cloudflare»

 

exit

  • Aplicamos un reinicio de servicio al contenedor, sudo docker restart nginxpm:

  • Ya podemos renovar nuestros certificados sin problemas:

 

Saludos y espero que os sea de ayuda 😉

Jose Ramon Ramos Gata

Técnico Superior STI

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.