docsDespliegue

Despliegue

Usando Maven

Maven es la forma más directa de ejecutar la aplicación durante el desarrollo:

# Compilar el proyecto y ejecutar tests
./mvnw clean package
 
# Ejecutar la aplicación en modo desarrollo
./mvnw spring-boot:run

Nota: El comando clean package limpia la carpeta target, compila el código, ejecuta los tests y genera el JAR ejecutable.

Usando Docker

Docker nos permite empaquetar la aplicación y sus dependencias en un contenedor. Ofrecemos dos opciones:

Dockerfile Estándar (JVM)

Esta es la opción recomendada para desarrollo y la mayoría de casos de uso:

# Construir la imagen Docker
docker build -t jwt-spring-boot .
 
# Ejecutar el contenedor
docker run -p 8080:8080 --env-file .env jwt-spring-boot

Características:

  • Usa Eclipse Temurin JDK 21
  • Mejor para desarrollo y debugging
  • Soporta JVM profiling y herramientas de monitoreo
  • Tamaño de imagen: ~300MB

Dockerfile Nativo (GraalVM)

Optimizado para producción y microservicios:

# Construir la imagen nativa (puede tomar varios minutos)
docker build -t jwt-spring-boot-native -f Dockerfile.native .
 
# Ejecutar el contenedor
docker run -p 8080:8080 --env-file .env jwt-spring-boot-native

Características:

  • Compilación nativa con GraalVM
  • Inicio instantáneo (<1 segundo)
  • Menor consumo de memoria
  • Tamaño de imagen: ~100MB
  • Ideal para entornos serverless

Docker Compose

Docker Compose facilita la ejecución de la aplicación junto con sus dependencias (PostgreSQL):

# Iniciar todos los servicios
docker-compose up -d
 
# Ver logs en tiempo real
docker-compose logs -f
 
# Detener todos los servicios
docker-compose down
 
# Detener y eliminar volúmenes (borra datos de DB)
docker-compose down -v

El comando docker-compose up realiza:

  1. Crea una red Docker para los servicios
  2. Inicia PostgreSQL con las variables de entorno configuradas
  3. Espera a que PostgreSQL esté listo
  4. Inicia la aplicación Spring Boot
  5. Ejecuta las migraciones de base de datos

Consejo: Durante el desarrollo, usa docker-compose up -d db para iniciar solo PostgreSQL y ejecuta la aplicación con Maven.

Despliegue en Render (Gratis)

Render ofrece hosting gratuito para aplicaciones Docker. Aprende cómo desplegar esta aplicación paso a paso en el siguiente video tutorial:

En este tutorial aprenderás:

  • Configurar un servicio web en Render
  • Conectar tu repositorio de GitHub
  • Configurar variables de entorno
  • Desplegar la aplicación usando Docker
  • Verificar los logs y el estado del despliegue

Nota: Render ofrece un plan gratuito que es perfecto para pruebas y proyectos pequeños. Para proyectos en producción, considera actualizar a un plan pago.