Deploy MongoDB
This guide shows you how to use MongoDB, a source-available, cross-platform, document-oriented database program.
To run it, follow these steps:
-
Install the
kraft
CLI tool and a container runtime engine, e.g. Docker. -
Clone the
examples
repository andcd
into theexamples/mongodb/
directory:
git clone https://github.com/kraftcloud/examplescd examples/mongodb/
Make sure to log into Unikraft Cloud by setting your token and a metro close to you.
We use fra0
(Frankfurt, π©πͺ) in this guide:
# Set Unikraft Cloud access tokenexport UKC_TOKEN=token# Set metro to Frankfurt, DEexport UKC_METRO=fra0
When done, invoke the following command to deploy this application on Unikraft Cloud:
kraft cloud deploy -p 27017:27017/tls -M 1024 .
The output shows the instance URL and other details:
[β] Deployed successfully! β βββββββββββ name: mongodb-6tiuu βββββββββββ uuid: 99779597-0bdb-4160-b902-a160c3ab4b2a ββββββββββ state: running βββββββββββ fqdn: bold-brook-khkwv7of.fra0.kraft.host ββββββββββ image: mongodb@sha256:e6ff5153f106e2d5e2a10881818cd1b90fe3ff1294ad80879b2239ffc52aff0e ββββββ boot time: 82.41 ms βββββββββ memory: 1024 MiB ββββββββ service: bold-brook-khkwv7of βββ private fqdn: mongodb-6tiuu.internal βββββ private ip: 172.16.6.4 βββββββββββ args: /usr/bin/mongod --bind_ip_all --nounixsocket
In this case, the instance name is mongodb-6tiuu
; itβs different for each run.
To test the deployment, first forward the port with the kraft cloud tunnel
command:
kraft cloud tunnel 27017:mongodb-6tiuu:27017
Then, on a separate console, you can use the mongosh
client to connect to the server:
mongosh mongodb://localhost
You should see output similar to:
Current Mongosh Log ID: 65d75b96310f70e63565e0f1Connecting to: mongodb://localhost/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+2.1.5(node:79750) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.(Use `node --trace-deprecation ...` to show where the warning was created)Using MongoDB: 6.0.13Using Mongosh: 2.1.5
For mongosh info see: https://docs.mongodb.com/mongodb-shell/
To help improve our products, anonymous usage data is collected and sent to MongoDB periodically (https://www.mongodb.com/legal/privacy-policy).You can opt-out by running the disableTelemetry() command.
test>
To disconnect, kill the tunnel
command with Ctrl+c
.
At any point in time, you can list information about the instance:
kraft cloud instance list
NAME FQDN STATE CREATED AT IMAGE MEMORY ARGS BOOT TIMEmongodb-6tiuu bold-brook-khkwv7of.fra0.kraft... running 20 minutes ago mongodb@sha256:e6ff5153f106e2... 1.0 GiB /usr/bin/mongod --bind_ip_all... 82410us
When done, you can remove the instance:
kraft cloud instance remove mongodb-6tiuu
Customize your Application
To customize the application, update the files in the repository, listed below:
Kraftfile
: the Unikraft Cloud specification, including command-line argumentsDockerfile
: In case you need to add files to your instanceβs rootfs
spec: v0.6
runtime: mongo:latest
rootfs: ./Dockerfile
cmd: ["/usr/bin/mongod", "--bind_ip_all", "--nounixsocket"]
FROM debian:bookworm AS build
RUN set -xe; \ echo "Your code here"
FROM scratch
# Copy your files here# COPY --from=build / /
Learn More
Use the --help
option for detailed information on using Unikraft Cloud:
kraft cloud --help
Or visit the CLI Reference.