Saltar al contenido principal

🚀 Despliegue Continuo de Contenedores

Muchas aplicaciones Docker se actualizan frecuentemente con nuevas versiones y correcciones. Para mantener sus entornos actualizados en la plataforma SaveinCloud, es recomendable realizar el redeploy de los contenedores siempre que se lancen nuevas tags.

El redeploy permite actualizar la imagen de un contenedor sin afectar los datos persistentes de la aplicación.


🔁 Cómo Funciona el Redeploy

  1. Se crea internamente un nuevo contenedor a partir de la nueva imagen (tag).
  2. Los datos personalizados del contenedor actual se mapean y preservan.
  3. El contenedor original se detiene y se actualiza con los archivos del nuevo.
  4. Se crea un snapshot antes de la operación para permitir rollback en caso de fallo.

💡 Si usas múltiples instancias (escalabilidad horizontal), es posible actualizar cada contenedor de forma secuencial, reduciendo o incluso evitando downtime.

peligro

Es de extrema importancia realizar todas las pruebas en un entorno de homologación antes de incluir este tipo de proceso en un entorno productivo, ya que una mala configuración de los datos a preservar puede llevar a pérdida de datos. Para entender más sobre cómo preservar datos, Lee Aquí


🖥️ Redeploy desde el Panel de SaveinCloud

  1. Accede al entorno y haz clic en Redeploy Container(s) en el contenedor o capa deseada.
  2. Elige el nuevo Tag de la imagen.
  3. Configura las opciones adicionales:
    • Keep volumes data: mantiene los datos persistentes (recomendado).
    • Sequential deployment with delay: redeploy gradual, uno a uno, con retardo.
    • Temporarily remove node(s) from DNS: elimina temporalmente del DNS durante el redeploy.
  4. Haz clic en Redeploy y confirma la operación.

🔗 Redeploy vía API

Usa el endpoint:

POST /1.0/environment/control/rest/redeploycontainers

Parámetros:

  • envName: nombre del entorno.
  • session: token de acceso.
  • nodeGroup: capa (opcional).
  • nodeId: ID del contenedor (opcional).
  • tag: nueva versión de la imagen.
  • useExistingVolumes: true para preservar volúmenes.
  • login/password: si la imagen es privada.
  • manageDNSState: true para ajustar DNS durante actualización secuencial.

✅ Usa RedeployContainersByGroup si necesitas personalizar los retardos entre contenedores.

Ejemplo con curl:

curl --location 'https://{{platformDomain}}/1.0/environment/control/rest/redeploycontainers' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'envName=meu-ambiente' \
--data-urlencode 'session={{session}}' \
--data-urlencode 'nodeGroup=cp' \
--data-urlencode 'tag=1.2.3' \
--data-urlencode 'useExistingVolumes=true'

🧰 Redeploy vía CLI

  1. Lista los entornos y contenedores:
~/saveincloud/environment/control/getenvs
~/saveincloud/environment/control/getenvinfo --envName meu-ambiente
  1. Lista los tags disponibles para un contenedor:
~/saveincloud/environment/control/getcontainernodetags --envName meu-ambiente --nodeId 12345
  1. Realiza el redeploy:
~/saveincloud/environment/control/redeploycontainers \
--envName meu-ambiente \
--nodeId 12345 \
--tag 1.2.3 \
--useExistingVolumes true

🔐 Incluye --login y --password si estás usando una imagen privada.


✅ Conclusión

Con el proceso de redeploy de la plataforma SaveinCloud, puedes mantener tus aplicaciones Docker actualizadas con seguridad y flexibilidad, ya sea vía panel, API o CLI — manteniendo los datos persistentes y con el menor downtime posible.