Spring Boot HTTP Server
This guide explains how to create and deploy a Spring Boot web server. To run this example, follow these steps:
-
Install the CLI. Use the unikraft CLI or the legacy kraft CLI. You need a BuildKit builder. The easiest way to get one is via Docker. Alternatively, you can also directly set up and use BuildKit, see the quick start.
-
Clone the
examplesrepository andcdinto theexamples/httpserver-java17-springboot3.5.x/directory:
Code
Make sure to log into Unikraft Cloud and pick a metro close to you.
This guide uses fra (Frankfurt, 🇩🇪):
When done, invoke the following command to deploy this app on Unikraft Cloud:
The output shows the instance address and other details:
In this case, the instance name is httpserver-java17-springboot35x-qseeo and the address is https://long-dust-si7xsngk.fra.unikraft.app.
They're different for each run.
Use curl to query the Spring Boot server's hello endpoint:
Code
Code
When done, you can remove the instance:
Customize your app
To customize the app, update the files in the repository, listed below:
DemoApplication.java: the serverKraftfile: the Unikraft Cloud specificationDockerfile: the Docker-specified app filesystem
Lines in the Kraftfile have the following roles:
-
spec: v0.7: The currentKraftfilespecification version is0.7. -
runtime: base-compat:latest: The runtime kernel to use is the base compatibility kernel. -
rootfs: Build the app root filesystem.source: ./Dockerfilemeans the filesystem is built using theDockerfile.type: erofsmeans the filesystem type is EROFS. -
cmd: ["/usr/lib/jvm/java-17-openjdk-amd64/bin/java", "-jar", "/usr/src/demo-0.0.1-SNAPSHOT.jar"]: Use as the starting command of the instance.
Lines in the Dockerfile have the following roles:
-
FROM scratch: Build the filesystem from thescratchcontainer image, to create a base image. -
COPY DemoApplication.java src/main/java/com/example/demo/: Copy the server implementation file in the Docker filesystem.
The following options are available for customizing the app:
-
If you only update the implementation in the
DemoApplication.javasource file, you don't need to make any other changes. -
If you create any new source files, copy them into the app filesystem by using the
COPYcommand in theDockerfile. -
More extensive changes may require extending the
Dockerfile(seeDockerfilesyntax reference).
You can list information about the instance by running:
When done, you can remove the instance:
Learn more
Use the --help option for detailed information on using Unikraft Cloud:
Or visit the CLI Reference or the legacy CLI Reference.