Build System
Unbind Builder
All “builds” are done with Buildkit and pushed to the container registry configured during installation.
The Unbind builder is a container that is spawned independently as a kubernetes job when a deployment is needed.
It has several capabilities and responsibilities in the build and deployment process.
- It can build your application using Railpack
- Railpack is essentially responsible for generating a “Dockerfile” for your application so you don’t have to.
- It builds applications using Buildkit
- It translates the build inputs and outputs into an Unbind CRD
- It deploys the CRD to the cluster, which is then processed by the Unbind Operator
- For services that do not need build, such as prebuild docker images or databases - the build step is simply bypassed, but the CRD is still created.
Buildkit
Buildkit is a container build system that is used to build applications.
It is used to build applications using Railpack and push the resulting image to the container registry.
We use a rootless buildkit daemon, which is deployed to your cluster after installing Unbind automatically.
This Documentation is a work in progress, but you are able to configure the buildkit daemon to have higher concurrency, scale it up to multiple servers, and even restrict it to only run on specific servers.
Build Caching
The builder will automatically create a build cache for your applications, which is stored on your container registry and used to speed up subsequent builds.
Railpack
Railpack is a tool created by Railway that is used to generate a Dockerfile for your application.
It is the default builder when you create a new Service in Unbind.