|
1 | 1 | # renku-frontend-buildpacks |
2 | 2 |
|
3 | | -This project provides a set of buildpacks and builders for deploying Renku frontend applications. It |
4 | | -includes buildpacks for various frontend frameworks and a builder that orchestrates the build |
5 | | -process. |
| 3 | +This project provides a comprehensive set of Cloud Native Buildpacks and a specialized `selector` |
| 4 | +builder designed to streamline the deployment of Renku frontend applications and development |
| 5 | +environments. Whether you're setting up JupyterLab, RStudio, or VSCode (via Vscodium) in your Renku |
| 6 | +project, these buildpacks simplify the process by intelligently detecting your project's needs and |
| 7 | +configuring the appropriate environment. |
| 8 | + |
| 9 | +The `selector` builder acts as an orchestrator, integrating various frontend frameworks and |
| 10 | +essential tools (like Python dependency management and kernel installers) to create ready-to-use |
| 11 | +images. This allows Renku users to focus on their data science work without deep knowledge of |
| 12 | +underlying containerization. |
| 13 | + |
| 14 | +For automated image building within your CI/CD pipelines, you can leverage the provided GitHub |
| 15 | +Action [actions/build-image](actions/build-image/README.md). This action simplifies the `pack build` |
| 16 | +process, allowing you to easily specify the desired `frontend`, `tags`, `builder-version`, and |
| 17 | +`run-image` directly in your workflows. |
| 18 | + |
| 19 | +To get started with manual builds, you'll primarily interact with the |
| 20 | +[`pack` CLI](https://buildpacks.io/docs/for-platform-operators/how-to/integrate-ci/pack/), using the |
| 21 | +`selector` builder to build your project. For example: |
| 22 | + |
| 23 | +```bash |
| 24 | +pack build my-renku-environment --builder ghcr.io/swissdatasciencecenter/renku-frontend-buildpacks/selector:0.1.0 --path . |
| 25 | +``` |
| 26 | + |
| 27 | +This command will leverage the `selector` builder (using version `0.1.0` as an example) to |
| 28 | +automatically detect and configure your Renku environment based on your project's files, and in this |
| 29 | +example, push the resulting image to `my-renku-environment`. |
6 | 30 |
|
7 | 31 | ## Directory Structure |
8 | 32 |
|
9 | 33 | * **builders**: Contains builder definitions. A builder defines the environment and buildpacks |
10 | | - used to build an application. For now we only maintain the selector builder. |
| 34 | +used to build an application. For now we only maintain the selector builder. |
11 | 35 | * **buildpacks**: Contains individual buildpacks for different frontend frameworks. Each buildpack |
12 | | - provides the necessary scripts and configurations to detect and build applications. |
13 | | - * **jupyterlab**: Buildpack for JupyterLab frontend. |
14 | | - * **kernel-installer**: Buildpack for installing the correct kernel for the environment. |
| 36 | +provides the necessary scripts and configurations to detect and build applications. |
| 37 | +* **jupyterlab**: Buildpack for JupyterLab frontend. |
| 38 | +* **kernel-installer**: Buildpack for installing the correct kernel for the environment. |
15 | 39 | * **samples**: Contains sample applications for different frontend frameworks. These samples can |
16 | | - be used to test the buildpacks and builders. |
| 40 | +be used to test the buildpacks and builders. |
17 | 41 |
|
18 | 42 | ## Makefile Targets |
19 | 43 |
|
20 | 44 | The `Makefile` provides several targets for building and running the project: |
21 | 45 |
|
22 | 46 | * **all**: Builds buildpacks, builders, and sample images. |
23 | 47 | * **buildpacks**: Builds all buildpacks defined in the `buildpacks` directory using `pack |
24 | | - buildpack package`. |
| 48 | +buildpack package`. |
25 | 49 | * **builders**: Builds all builders defined in the `builders` directory using `pack builder |
26 | | - create`. |
| 50 | +create`. |
27 | 51 | * **samples**: Builds sample images using the buildpacks and builders. It utilizes the |
28 | | - `pack build` command with the specified builder image and environment variables. |
| 52 | +`pack build` command with the specified builder image and environment variables. |
29 | 53 | * **run**: Runs a sample image with Docker, publishing port 8000. |
30 | 54 |
|
31 | 55 | ## Building the Project |
|
0 commit comments