## Overview of the pipeline 1. A Cloud VM Rocky Linux disk is downloaded, then customized so it can run docker inside 2. A Rocky Linux bootc repo is cloned onto that and the repo is used to build a Rocky Linux 9.4 bootc Docker image, which is then uploaded to a container registry, the pipeline for that is here due to `1.` and `2` sharing files and its easier to debug them if needed like this #### !!! IMPORTANT !!! The pipeline assumes that the Gitlab runner host has a shared a directory called `/rockyDisks` that can be used by all jobs and persists between runs/jobs, otherwise you'd need to make a change in some of the `build-builder-vm-disk` step's files so that the builder VM disk is generated/the step is triggered ### To run a new build of the Cloud VM image change the ## To run this inside a VS Code dev container 1. Make sure the env vars in `.devcontainer/devcontainer.env` match the ones in `.gitlab-ci.yml` for all jobs, and the CI_COMMIT_SHA var is present in the dev env file 2. Setting up the builder VM disk: To download and setup a Rocky Linux VM Disk that is to be used for building a bootc container image run: ``` ./scripts/setupBuilder/main.sh ``` 3. To build a bootc container image and push it, fill out the CONTAINER_REGISTRY vars below, then run: ``` export CONTAINER_REGISTRY_RW_USER=someuser export CONTAINER_REGISTRY_RW_PASS=some_api_key ./scripts/buildPushBootcContainerImage/main.sh ``` ### If any debugging is needed you can connect to the latest builder disk run the following, note all changes will be saved: ``` ./scripts/debug/main.sh ``` To connect to a specific builder disk run ``` ./scripts/debug/main.sh /base-image-build/local.qcow2 ```