This guide explains how to create and deploy a C++-based HTTP web server using the Boost libraries. To run this example, follow these steps:
-
Install the
kraftCLI tool and a container runtime engine, for example Docker. -
Clone the example repository and
cdinto theexamples/http-cpp-boost/directory:
Code
Make sure to log into Unikraft Cloud by setting your token and a metro close to you.
This guide uses fra (Frankfurt, 🇩🇪):
Code
x When done, invoke the following command to deploy this app on Unikraft Cloud:
Code
The output shows the instance address and other details:
Code
In this case, the instance name is http-cpp-boost-rae7s and the address is https://red-snow-3bn7bzc8.fra.unikraft.app.
They're different for each run.
Use curl to query the Unikraft Cloud instance of the C++ Boost HTTP web server:
Code
Code
You can list information about the instance by running:
Code
Code
When done, you can remove the instance:
Code
Customize your app
To customize the app, update the files in the repository, listed below:
http_server.cpp: the C++ HTTP serverKraftfile: the Unikraft Cloud specificationDockerfile: the Docker-specified app filesystem
Lines in the Kraftfile have the following roles:
-
spec: v0.6: The currentKraftfilespecification version is0.6. -
runtime: base: The Unikraft runtime kernel to use is its base one. -
rootfs: ./Dockerfile: Build the app root filesystem using theDockerfile. -
cmd: ["/http_server"]: Use/http_serveras the starting command of the instance.
Lines in the Dockerfile have the following roles:
COPY ./http_server.cpp /src/http_server.cpp: Copy the server implementation file (http_server.cpp) in the Docker filesystem (in/src/http_server.cpp).
The following options are available for customizing the app:
-
If you only update the implementation in the
http_server.cppsource 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).
Learn more
Use the --help option for detailed information on using Unikraft Cloud:
Code
Or visit the CLI Reference.