Una colección de contenedores Docker basados en Debian con diferentes versiones de Java (JDK 8, 11, 17, 21) y funcionalidad avanzada para simular fechas específicas durante la ejecución de aplicaciones Java.
- 🐳 Múltiples versiones de Java: JDK 8, 11, 17, 21
- 📅 Simulación de fechas: Ejecuta aplicaciones Java con fechas simuladas
- 🛠️ Herramientas incluidas: Scripts para facilitar el uso
- 🔧 Fácil configuración: Scripts automatizados para construcción y despliegue
- 📚 Documentación completa: Guías detalladas y ejemplos
- 🚀 Docker Hub: Imágenes pre-construidas disponibles
# Descargar imagen con JDK 21
docker pull mahtdev/debian-jdk21:latest
# Ejecutar con fecha simulada
docker run --rm mahtdev/debian-jdk21:latest \
run_java_fake_date.sh "2023-02-12 05:00:00" -jar mi_app.jar
# Clonar el repositorio
git clone https://github.com/mahtdev/debian-java-containers.git
cd debian-java-containers
# Construir imagen con JDK 21
./scripts/build/create_jdk21.sh
# Ejecutar demostración
docker run --rm mahtdev/debian-jdk21:12.12 demo_fake_date.sh
Versión | Java | Debian | Docker Hub Tag | Descripción |
---|---|---|---|---|
jdk8 |
OpenJDK 8 | 12.12 | mahtdev/debian-jdk8:latest |
Java 8 con herramientas de desarrollo |
jdk11 |
OpenJDK 11 | 12.12 | mahtdev/debian-jdk11:latest |
Java 11 estándar |
jdk17 |
OpenJDK 17 | 12.12 | mahtdev/debian-jdk17:latest |
Java 17 LTS |
jdk21 |
OpenJDK 21 | 12.12 | mahtdev/debian-jdk21:latest |
Java 21 LTS con simulación de fechas |
# Probar aplicación en una fecha específica
docker run --rm -v $(pwd):/app mahtdev/debian-jdk21:latest \
run_java_fake_date.sh "2023-02-12 05:00:00" -jar /app/mi_app.jar
# Simular ejecución en el pasado
docker run --rm mahtdev/debian-jdk21:latest \
run_java_fake_date.sh "2020-01-01 00:00:00" -jar app.jar
# Simular ejecución en el futuro
docker run --rm mahtdev/debian-jdk21:latest \
run_java_fake_date.sh "2030-12-31 23:59:59" -jar app.jar
# Ejecutar con herramientas de desarrollo
docker run -it --rm mahtdev/debian-dev-jdk8:latest bash
create_jdk8.sh
- Construye imagen con JDK 8create_jdk11.sh
- Construye imagen con JDK 11create_jdk17.sh
- Construye imagen con JDK 17create_jdk21.sh
- Construye imagen con JDK 21
run_java_fake_date.sh
- Ejecuta Java con fecha simuladademo_fake_date.sh
- Demostración de funcionalidadTestDate.java
- Aplicación de ejemplo
push_to_dockerhub.sh
- Sube imagen a Docker Hubquick_push.sh
- Subida rápidabuild_and_push.sh
- Construye y sube en un comando
debian-java-containers/
├── 📁 containers/ # Dockerfiles
│ ├── debian-jdk8
│ ├── debian-jdk11
│ ├── debian-jdk17
│ ├── debian-jdk21
│ └── debian-dev-jdk8
├── 📁 scripts/ # Scripts de automatización
│ ├── build/ # Scripts de construcción
│ ├── dockerhub/ # Scripts de Docker Hub
│ └── utils/ # Utilidades
├── 📁 packages/ # Archivos de Java (no incluidos)
├── 📁 docs/ # Documentación
├── 📁 examples/ # Ejemplos de uso
└── 📄 README.md
- Docker 20.10+
- Git
- Bash (Linux/macOS) o WSL (Windows)
# 1. Clonar el repositorio
git clone https://github.com/mahtdev/debian-java-containers.git
cd debian-java-containers
# 2. Descargar paquetes de Java (opcional)
# Los paquetes se descargan automáticamente durante la construcción
# 3. Construir imágenes
./scripts/build/create_jdk21.sh
# Configurar credenciales
export DOCKER_USERNAME=tu_usuario
export DOCKER_PASSWORD=tu_token
# Subir imagen
./scripts/dockerhub/push_to_dockerhub.sh latest
# Ejecutar Spring Boot con fecha simulada
docker run --rm -v $(pwd):/app mahtdev/debian-jdk21:latest \
run_java_fake_date.sh "2023-02-12 05:00:00" \
-jar /app/spring-boot-app.jar --spring.profiles.active=test
# Ejecutar con configuración personalizada
docker run --rm -v $(pwd):/app mahtdev/debian-jdk21:latest \
run_java_fake_date.sh "2023-02-12 05:00:00" \
-jar /app/mi_app.jar --config=/app/config.properties --debug
# Ejecutar clase específica
docker run --rm -v $(pwd):/app mahtdev/debian-jdk21:latest \
run_java_fake_date.sh "2023-02-12 05:00:00" \
-cp /app/classes com.ejemplo.MiAplicacion
Las contribuciones son bienvenidas! Por favor:
- Fork el proyecto
- Crea una rama para tu feature (
git checkout -b feature/AmazingFeature
) - Commit tus cambios (
git commit -m 'Add some AmazingFeature'
) - Push a la rama (
git push origin feature/AmazingFeature
) - Abre un Pull Request
Este proyecto está bajo la Licencia MIT. Ver el archivo LICENSE para más detalles.
- 📧 Email: support@maht.dev
- 🐛 Issues: GitHub Issues
- 📖 Documentación: Wiki
- OpenJDK - Java Development Kit
- Debian - Sistema operativo base
- Docker - Plataforma de contenedores
- faketime - Simulación de fechas
⭐ ¡Si este proyecto te es útil, considera darle una estrella! ⭐