Java Apps - Docker Spring Boot Web Service
Overview
This guide walks you through configuring and deploying a Spring Boot web service using Nife. You'll learn how to set up your Java project, initialize it with Nife CLI, and deploy it to production using a Docker-based Spring Boot example.
This project demonstrates a minimal Spring Boot application that can be built with Maven and containerized with Docker. It is intentionally lightweight and easy to follow, making it an excellent reference project for local development, container workflows, and cloud deployment testing.
Application Features:
- Lightweight Spring Boot web service
- Maven-based build system
- Docker containerization
- RESTful API endpoints
- Java-based microservice architecture
- Production-ready deployment
We'll use this sample repository: Docker Spring Boot Java Web Service Example
Prerequisites
Before you start, make sure you have
- Nife account and CLI installed
Step 1: Install Nifectl CLI
Follow the official installation guide for your operating system:
Step 2: Login to Nifectl
Authenticate with your Nife account:
nifectl auth login
You'll be prompted to enter your credentials. A browser window will open to complete the authentication.
You can deploy applications directly from GitHub, Bitbucket, or GitLab.
Step 3: Initialize Your Application
Initialize the Spring Boot web service for deployment:
nifectl init
Interactive Configuration
The CLI will prompt you for the following information. Follow each step carefully:
1. App Name
? App Name (leave blank to use an auto-generated name)
Press Enter to generate a random name or enter your preferred app name.
2. Select Organization
? Select organization: [Use arrows to move, type to filter]
BNC (bnc)
NIFEDOCUMENT (nifedocument)
Use arrow keys to select your organization.
3. Deployment Source
? Deployment source: [Use arrows to move, type to filter]
Image Public Docker image
Docker Private registry image
Database S3/GS, Postgres, Redis, Mongo...
Loadbalancer Load balancer config
Runtime Language & framework runtimes
Select "Repository" from the list.
4. Repository Provider
? Select repository provider: [Use arrows to move, type to filter]
GitHub Deploy from a GitHub repository URL
GitLab Deploy from a GitLab repository URL
Bitbucket Deploy from a Bitbucket repository URL
Select GitHub for this example.
5. GitHub URL and Branch
? Enter your GitHub URL: https://github.com/nifetency/docker-spring-boot-java-web-service-example.git
? Enter your GitHub Branch: master
Provide your repository URL and the branch to deploy (typically main or master).
6. Deployment Type
? Deployment type (Kubernetes workload kind): Deployment
Leave as default (Deployment).
7. Workload and Resource Configuration
? Workload type: deployment
? Resource type: CPU
? Do You Wish To Add Volume (y/N): No
? Specify the Replicas Count for deployment(1): 1
Accept the defaults for a standard Spring Boot deployment.
8. Port Configuration
? Select Internal Port: [? for help] (4000): 8080
? Select External Port: [? for help] (80): 80
Set internal port to 8080 (Spring Boot default) and external port to 80.
9. Memory and Routing
? Do You Wish To Add Memory Allocations: No
? Select Routing Policy: [Use arrows to move, type to filter]
Geolocation
Latency
Select Geolocation for global distribution.
10. Deployment Strategy
? Deployment strategy: [Use arrows to move, type to filter]
rolling
recreate
blue-green
canary
shadow
ab-testing
Select rolling for zero-downtime deployments.
11. Environment Variables
? Add environment variables? (y/N): No
Skip for now (can be added later if needed).
Configuration Complete
When initialization finishes, you'll see:
New app created
Name = your-app-name
Organization = nifedocument
Version = 0
Status = New
Hostname = <empty>
Update config file nife.toml
Your nife.toml configuration file has been created with all your settings.
Step 4: Deploy Your Application
Before deploying, you'll need to select the region where your application will be deployed.
Deploy the Spring Boot web service:
nifectl deploy
Select Deployment Region
When you run the deploy command, you'll be prompted to select a region:
? Select region for deployment: [Use arrows to move, type to filter]
IND - India, Mumbai
EUR - Europe
APAC - Asia Pacific
AMER - Americas
my-cluster - my-cluster
Use arrow keys to select your desired region. Choose the region closest to your target users for optimal performance.
Deployment Process
The deployment process includes:
- Validating app configuration
- Cloning repository
- Building Docker image
- Optimizing image
- Creating release and deployment
Expected Output
Deploying spring-boot-service
==> Validating App Configuration
--> Validating App Configuration done
==> Building Image from Repository
--> Cloning repository
--> Building Docker image
==> Optimizing Image
--> Done Optimizing Image
==> Creating Release
==> Creating Deployment
Release v1 created at: https://your-app.on.nifetency.com
Deployment...Done
Step 5: Access Your Application
Once deployment completes successfully, your Spring Boot web service is live!
Navigate to your deployment URL:
https://your-app.on.nifetency.com
Check the Nife Documentation if you encounter any issues.