base-image-build/README.md

35 lines
1.7 KiB
Markdown

## 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
```