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

Look into breaking down the user's container into more incremental builds #25

Open
atheurer opened this issue Dec 19, 2020 · 1 comment

Comments

@atheurer
Copy link
Contributor

Right now we don't reuse much when building a new container. We start with the base OS (userenv), and then we add everything we want, then commit this image. We might be able to have more commits between the base OS and the final product. This may help in building another container which has slightly different requirements (perhaps one less tool).

It might be a good idea to build a container with just the benchmark requirements, then commit this (with a md5sum as the tag), then build on top of that by adding user's tools, then commit again (with another md5sum). When a user wants to run the same benchmark (and same userenv, same benchmark version, etc), but want a different set of tools, they at least get to use the intermediate container (with the benchmark), then add their tools for their final container image.

@atheurer
Copy link
Contributor Author

atheurer commented Jan 8, 2021

Thinking more about this, we could just build userenvs with their own base requirements in their userenv.json. That alone would probably eliminate a lot of rebuilding, since all users would then be able to start with a image that is the base userenv + the userenv requirements (instead of getting the base userenv image and installing those requirements). We should still use the md5dsum calc to uniquely identify these images.

So, when a user wants to build a new image, they can do a search for md5sums in this order:

  1. get md5sum for all requirements (userenv, benchmark, tools), if image is found, use it, and exit.
  2. get md5sum for all requirements but tools, if image is found, start with this and add tools, upload image, then go to step 1.
  3. get md5sum for all requirements but tools and benchmark (userenv plus whatever rickshaw adds that is not bechmark/tools), if image is found, start with this, add tools, upload image, then go to step 2.
  4. get md5sum for userenv (base requirements), if image is found, start with this, add base rickshaw reqs, upload image, then go to step 3.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant