Go to file
2024-08-11 09:16:38 +00:00
.devcontainer feat: build-push base-image-build 2024-08-11 09:09:04 +00:00
scripts feat: build-push base-image-build 2024-08-11 09:09:04 +00:00
.gitignore feat: build-push base-image-build 2024-08-11 09:09:04 +00:00
.gitlab-ci.yml ci: fixing pipeline 2024-08-11 09:16:38 +00:00
LICENSE chore: adding LICENSE 2024-08-11 09:09:44 +00:00
README.md feat: build-push base-image-build 2024-08-11 09:09:04 +00:00

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
  1. 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