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

Cache build docker images in container registry. #5811

Merged
merged 16 commits into from
Nov 18, 2020

Conversation

edgchen1
Copy link
Contributor

Description
This PR adds infrastructure to automatically cache docker images used in CI builds in a container registry.

Currently, build images are pulled from a container registry for some builds and built every time for others. The container registry requires maintenance to keep the images up to date and building images every time wastes build agent resources.

With this change, a given build image can be looked up in a cache container registry and if present, pulled, and otherwise, built and pushed. The uniqueness of a build image is determined by a hash digest of the dockerfile, docker build context directory, and certain "docker build" options. This digest is part of the image tag in the cache container repository.

The cache container registry will need to be cleaned up periodically. This is not automated yet.

Motivation and Context
Reduce maintenance of existing build docker images in container registry. Reduce build times for builds which always rebuild their docker image.

@edgchen1 edgchen1 added the build build issues; typically submitted using template label Nov 14, 2020
@edgchen1 edgchen1 requested a review from snnn November 14, 2020 02:00
@snnn
Copy link
Member

snnn commented Nov 16, 2020

Nice job!

@edgchen1 edgchen1 marked this pull request as ready for review November 16, 2020 20:32
@edgchen1 edgchen1 requested a review from a team as a code owner November 16, 2020 20:32
snnn
snnn previously approved these changes Nov 17, 2020
@edgchen1 edgchen1 merged commit 71e7c2b into master Nov 18, 2020
@edgchen1 edgchen1 deleted the edgchen1/build_image_cache branch November 18, 2020 01:02
edgchen1 added a commit that referenced this pull request Nov 20, 2020
Follow up to #5811 to automate cleanup of the build docker image cache.
Added a script and build definition to clean up docker images that haven't been accessed recently.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
build build issues; typically submitted using template
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants