A Spring Boot application for rendering dynamic web pages with Oracle database integration.
- Docker and Docker Compose
- Oracle Database (running locally on port 1521)
- Java 17+ (for local development)
- Maven 3.6+ (for local development)
-
Start Oracle Database (if not already running):
docker run -d --name oracle-xe -p 1521:1521 -e ORACLE_PASSWORD=oracle123 gvenzl/oracle-xe:21-slim
-
Build and Run Application:
docker-compose up --build
-
Access Application:
- Application: http://localhost:8080/page-rendering
- Health Check: http://localhost:8080/page-rendering/actuator/health
The application connects to Oracle Database with these settings:
- URL:
jdbc:oracle:thin:@localhost:1521:XE
- Username:
system
- Password:
oracle123
The application uses:
- Multi-stage build for optimized image size
- Oracle Instant Client for database connectivity
- Health checks for container monitoring
- Non-root user for security
# Start Oracle database
docker run -d --name oracle-xe -p 1521:1521 -e ORACLE_PASSWORD=oracle123 gvenzl/oracle-xe:21-slim
# Run application
mvn spring-boot:run
# Run unit tests (no database required)
mvn test
GET /page-rendering/api/pages/{pageId}
- Render a specific pageGET /page-rendering/api/branding/config
- Get branding configurationGET /page-rendering/actuator/health
- Health check endpoint
Variable | Description | Default |
---|---|---|
SPRING_DATASOURCE_URL |
Oracle database URL | jdbc:oracle:thin:@localhost:1521:XE |
SPRING_DATASOURCE_USERNAME |
Database username | system |
SPRING_DATASOURCE_PASSWORD |
Database password | oracle123 |
SERVER_PORT |
Application port | 8080 |
- Ensure Oracle database is running:
docker ps | grep oracle
- Check database logs:
docker logs oracle-xe
- Verify connection:
sqlplus system/oracle123@localhost:1521/XE
- Check application logs:
docker logs page-rendering-unit
- Verify health endpoint:
curl http://localhost:8080/page-rendering/actuator/health
- Check database connectivity from application container
- CI/CD pipeline is currently disabled for local development
- Enable pipeline in
.github/workflows/ci-cd.yml
for production deployment - Configure proper secrets for Docker Hub deployment
- Add monitoring and logging for production environment