This project provides a set of buildpacks and builders for deploying Renku frontend applications. It includes buildpacks for various frontend frameworks and a builder that orchestrates the build process.
- builders: Contains builder definitions. A builder defines the environment and buildpacks used to build an application. For now we only maintain the selector builder.
- buildpacks: Contains individual buildpacks for different frontend frameworks. Each buildpack provides the necessary scripts and configurations to detect and build applications.
- jupyterlab: Buildpack for JupyterLab frontend.
- kernel-installer: Buildpack for installing the correct kernel for the environment.
- samples: Contains sample applications for different frontend frameworks. These samples can be used to test the buildpacks and builders.
The Makefile
provides several targets for building and running the project:
- all: Builds buildpacks, builders, and sample images.
- buildpacks: Builds all buildpacks defined in the
buildpacks
directory usingpack buildpack package
. - builders: Builds all builders defined in the
builders
directory usingpack builder create
. - samples: Builds sample images using the buildpacks and builders. It utilizes the
pack build
command with the specified builder image and environment variables. - run: Runs a sample image with Docker, publishing port 8000.
Note you have to have experimental features enabled on the pack
CLI in order
to be able to use and build image extensions.
pack config experimental true
To build the project, run:
make
This will build all buildpacks, builders, and sample images.
To build only the buildpacks, run:
make buildpacks
To build only the builders, run:
make builders
To build only the sample images, run:
make samples
Please note that the builders must be set and that you may set the BUILDER_IMAGE
variable to
select a builder
make samples BUILDER_IMAGE=selector
To run a sample image, use the run
target:
make run
You can set the SAMPLE_IMAGE
and FRONTEND
. For example:
make run SAMPLE_IMAGE=conda FRONTEND=jupyterlab
This project requires the following tools:
- pack
- Docker