Actualización y Mantenimiento
Cómo actualizar tu proyecto Astro cuando hagas cambios y comandos útiles para mantenimiento.
Actualizar Proyecto
Section titled “Actualizar Proyecto”Cuando hagas cambios en tu código local y lo subas a GitHub:
Opción 1: Comandos Manuales
Section titled “Opción 1: Comandos Manuales”# 1. Ir al directorio del proyectocd /root/tu-proyecto-astro
# 2. Descargar cambios de GitHubgit pull origin main
# 3. Reconstruir la imagen Dockercd /rootdocker compose build proyecto-astro
# 4. Reiniciar el contenedor con la nueva imagendocker compose up -d proyecto-astro
# 5. Verificar que está corriendodocker ps | grep proyecto-astroOpción 2: Comando Rápido
Section titled “Opción 2: Comando Rápido”cd /root/tu-proyecto-astro && git pull origin main && cd /root && docker compose up -d --build proyecto-astro && echo "✅ Actualización completada"El flag -d (detached) hace que el contenedor se ejecute en segundo plano, liberando la terminal inmediatamente.
Opción 3: Script de Actualización Automatizado
Section titled “Opción 3: Script de Actualización Automatizado”# Crear script de actualizaciónvim /root/tu-proyecto-astro/update-docker.shContenido:
#!/bin/bashcd /root/tu-proyecto-astro
echo "📥 Descargando cambios..."git pull origin main
echo "🔨 Reconstruyendo imagen..."cd /rootdocker compose build --no-cache proyecto-astro
echo "🔄 Reiniciando contenedor..."docker compose up -d proyecto-astro
echo "🧹 Limpiando imágenes antiguas..."docker image prune -f
echo "✅ Actualización completada"echo "📊 Estado del contenedor:"docker ps | grep proyecto-astro# Dar permisos de ejecuciónchmod +x /root/tu-proyecto-astro/update-docker.sh
# Ejecutar el script cuando quieras actualizar/root/tu-proyecto-astro/update-docker.shComandos Útiles
Section titled “Comandos Útiles”Ver Logs
Section titled “Ver Logs”# Ver logs en tiempo real (Ctrl+C para salir)docker compose logs -f proyecto-astro
# Ver solo las últimas 50 líneasdocker compose logs --tail=50 proyecto-astro
# Ver logs con timestampsdocker compose logs -f --timestamps proyecto-astroGestión del Contenedor
Section titled “Gestión del Contenedor”# Reiniciar contenedordocker compose restart proyecto-astro
# Detener contenedordocker compose stop proyecto-astro
# Iniciar contenedor detenidodocker compose start proyecto-astro
# Eliminar contenedor (no elimina la imagen)docker compose down proyecto-astro
# Ver uso de recursos en tiempo realdocker stats proyecto-astro
# Entrar al contenedordocker exec -it proyecto-astro shGestión de Imágenes
Section titled “Gestión de Imágenes”# Ver imágenes Dockerdocker images | grep astro
# Limpiar imágenes no usadasdocker image prune -f
# Limpiar todo (imágenes, contenedores detenidos, etc.)docker system prune -aSolución de Problemas
Section titled “Solución de Problemas”Contenedor no inicia
Section titled “Contenedor no inicia”# Ver logs detalladosdocker compose logs proyecto-astro
# Ver eventos recientesdocker events --since 5mPuerto ya en uso
Section titled “Puerto ya en uso”# Ver qué usa el puertosudo lsof -i :3080
# Cambiar puerto en docker-compose.ymlports: - "3081:80" # Usar otro puertoImagen muy grande
Section titled “Imagen muy grande”# Ver tamaño de imagendocker images proyecto-astro
# El multi-stage build ya optimiza el tamaño# Limpiar capas innecesariasdocker image prune -aProblemas con Traefik
Section titled “Problemas con Traefik”# Ver logs de Traefikdocker compose logs -f traefik
# Verificar que el contenedor está en la red correctadocker network inspect traefik_defaultBackup del Proyecto
Section titled “Backup del Proyecto”Backup de la Imagen
Section titled “Backup de la Imagen”# Exportar imagendocker save -o proyecto-astro-backup.tar proyecto-astro
# Importar imagen en otro servidordocker load -i proyecto-astro-backup.tarBackup del Código
Section titled “Backup del Código”El código está en GitHub, pero puedes hacer backup local:
# Desde tu máquina localgit clone git@github.com:tu-usuario/proyecto-astro.git proyecto-astro-backupMonitoreo
Section titled “Monitoreo”# Ver estado de salud del contenedordocker inspect --format='{{.State.Status}}' proyecto-astro
# Ver uso de recursos en tiempo realdocker stats proyecto-astro
# Ver información detallada del contenedordocker inspect proyecto-astroMejores Prácticas
Section titled “Mejores Prácticas”- Hacer pull antes de editar para evitar conflictos
- Probar cambios localmente antes de desplegar
- Ver logs después de cada actualización
- Mantener backup del código en GitHub
- Limpiar imágenes antiguas regularmente
- Monitorear recursos con
docker stats
Múltiples Proyectos Astro
Section titled “Múltiples Proyectos Astro”Si tienes varios proyectos Astro, cada uno debe tener:
- Su propia carpeta en
/root/ - Su propio servicio en
docker-compose.yml - Su propio subdominio configurado
- Su propio contenedor independiente
Ejemplo con 2 proyectos:
docs-astro: build: context: ./vps-docs container_name: docs-astro labels: - traefik.http.routers.docs-astro.rule=Host(`docs.tudominio.com`) # ... resto de labels
portfolio-astro: build: context: ./portfolio container_name: portfolio-astro labels: - traefik.http.routers.portfolio-astro.rule=Host(`portfolio.tudominio.com`) # ... resto de labelsCada proyecto se gestiona independientemente.