mirror of
https://gitlab.com/monolithify/base-image-build.git
synced 2024-11-21 20:21:27 +00:00
.devcontainer | ||
.gitea/workflows | ||
scripts | ||
.gitignore | ||
LICENSE | ||
README.md |
Overview of the pipeline (currently not working, use the devcontainer + scripts instead)
- A Cloud VM Rocky Linux disk is downloaded, then customized so it can run docker inside
- 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.
and2
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
- 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 - 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
- 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