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:
- Crea una red Docker para los servicios
- Inicia PostgreSQL con las variables de entorno configuradas
- Espera a que PostgreSQL esté listo
- Inicia la aplicación Spring Boot
- 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.