Bun
This guide explains how to create and deploy a Bun app. To run this example, follow these steps:
-
Install the
kraftCLI tool and a container runtime engine, for example Docker. -
Clone the
examplesrepository andcdinto theexamples/bundirectory:
Code(bash)
Make sure to log into Unikraft Cloud by setting your token and a metro close to you.
This guide uses fra (Frankfurt, ๐ฉ๐ช):
Code(bash)
When done, invoke the following command to deploy the app on Unikraft Cloud:
Code(bash)
The output shows the instance address and other details:
Code(ansi)
In this case, the instance name is bun-700mp and the address is https://quiet-pond-ao44imcg.fra.unikraft.app.
They're different for each run.
Use curl to query the Unikraft Cloud instance of the Bun instance:
Code(bash)
Code(text)
You can list information about the instance by running:
Code(bash)
Code(text)
When done, you can remove the instance:
Code(bash)
Customize your app
To customize the app, update the files in the repository, listed below:
Kraftfile: the Unikraft Cloud specificationDockerfile: the Docker-specified app filesystemserver.ts: the Bun server implementation
Code(yaml)
Lines in the Kraftfile have the following roles:
-
spec: v0.6: The currentKraftfilespecification version is0.6. -
runtime: base-compat:latest: The kernel to use. -
rootfs: ./Dockerfile: Build the app root filesystem using theDockerfile. -
cmd: ["/usr/bin/bun", "run", "/usr/src/server.ts"]: Use/usr/bin/bun run /usr/src/server.tsas 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 ...: Copy required files to the app filesystem: thebunbinary executable, libraries, configuration files, the/usr/src/server.tsimplementation. -
RUN ...: Run specific commands to generate or to prepare the filesystem contents.
The following options are available for customizing the app:
-
If you only update the implementation in the
server.tssource file, you don't need to make any other changes. -
If you want to add extra files, you need to copy them into the filesystem using the
COPYcommand in theDockerfile. -
If you want to replace
server.tswith a different source file, update thecmdline in theKraftfileand replace/usr/src/server.tswith the path to your new source file. -
More extensive changes may require extending the
Dockerfile(seeDockerfilesyntax reference).
Learn more
Use the --help option for detailed information on using Unikraft Cloud:
Code(bash)
Or visit the CLI Reference.