Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docker library: build when all base packages are ready #656

Open
wants to merge 2 commits into
base: dev
Choose a base branch
from

Conversation

grooverdan
Copy link
Member

debug info containers disabled for now. Scripts test locally ok when passed same BB arguments.

  1. Save space

Rather than building parts of the manifest on the assumption that all architectures will catch up, wait for all of them.

When the are all there, build them all in one go, and clean them all up at the end.

The *-reference.txt file contains the name of the builders that are ready. Its used as a counter so the only thing that matters is the number of unique lines.

Removed use of podman. There where probably some incompatible things here.

  1. be retriggerable

If any part of the build fails, clean the images up. Any manual retrigger on the tarbuildnum for a ubi/non-ubi will retrigger the building of the manifest, and test. This saves us rebuilding the packages.

So this includes docker-library-build.sh. Failure of an architecture cleans them all.

  1. tests now x86_64 only

The docker-library-test.sh is adjusted because of the manifest name.

The less obvious change is because the image is a manifest, running the test suite on this will only run on the native amd64 architecture.

There where timeouts on non-amd64 sometimes still which where pretty much always false positives.

  1. simplified docker-library-manifest

With the manifest already done in the build step,
this is simply pushing that manifest and all the
tags around it.

A re-arrangements means we push the tags (latest/earliest...) first (with image). Then the image with its main tag (like :10.5).

Then we build the debug images. As there is now an easy implementation for this so its a one run process.

Cleanup is also part of this script. The reference.txt files are removed.

buildah rmi --prune --force will remove all untagged images, including any that had running containers on them during a build process.

The rest of the cleanup is the same (without an if condition around it). The is probably scope for cleaning this up some more.

1. Save space

Rather than building parts of the manifest on the assumption
that all architectures will catch up, wait for all of them.

When the are all there, build them all in one go, and clean
them all up at the end.

The *-reference.txt file contains the name of the builders that
are ready. Its used as a counter so the only thing that matters
is the number of unique lines.

Removed use of podman. There where probably some incompatible
things here.

2. be retriggerable

If any part of the build fails, clean the images up. Any manual
retrigger on the tarbuildnum for a ubi/non-ubi will retrigger the building
of the manifest, and test. This saves us rebuilding the packages.

So this includes docker-library-build.sh. Failure of an architecture
cleans them all.

3. tests now x86_64 only

The docker-library-test.sh is adjusted because of the manifest
name.

The less obvious change is because the image is a manifest,
running the test suite on this will only run on the native amd64
architecture.

There where timeouts on non-amd64 sometimes still which
where pretty much always false positives.

4. simplified docker-library-manifest

With the manifest already done in the build step,
this is simply pushing that manifest and all the
tags around it.

A re-arrangements means we push the tags (latest/earliest...)
first (with image). Then the image with its main tag (like :10.5).

Then we build the debug images. As there is now an easy implementation
for this so its a one run process.

Cleanup is aslo part of this script. The reference.txt files are
removed.

buildah rmi --prune --force will remove all untagged images, including
any that had running containers on them during a build process.

The rest of the cleanup is the same (without an if condition around
it). The is probably scope for cleaning this up some more.
Hit a buildah quirk/bug so disabling
debug image build until better
solution presents itself.
@grooverdan grooverdan requested a review from fauust December 4, 2024 02:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

1 participant