Devlog #2: Bypassing Cloud Memory Walls & Fixing CI/CD Pipelines
What changed: Optimized the Spring Boot architecture to fit under 512MB RAM constraints, successfully deployed the backend to production, and automated the GitHub Actions Docker build pipeline.
The Hurdles & Fixes:
Memory Limits: The application ran out of memory on startup. Fix: Added JVM arguments (-Xmx384m -XX:+UseSerialGC) and staggered the NASA API scheduler loops to reduce runtime spikes.
Syntax Crash: Spring crashed due to mixing cron and initialDelay in the same scheduler annotation. Fix: Converted the task to a clean fixedRate setup.
NASA Null Bug: The app hit a NullPointerException because NASA omits the "data" JSON key when zero meteors occur in a week. Fix: Added a defensive null-check function.
CI/CD Naming Rule: GitHub Actions failed because Docker tags strictly forbid uppercase letters. Fix: Added a dynamic shell function (tr '[:upper:]' '[:lower:]') into the YAML workflow to automatically force repository paths to lowercase on every git push.
Next steps: Connect the newly published Docker package to live web hosting and finish mapping the UI dashboard layout.
Comments 0
No comments yet. Be the first!
Sign in to join the conversation.