3 ms·
I’m confused. Why do you need to snapshot live processes? Are we concerned about startup time of Postgres or whatever? Also, why is isolation needed for e2e tes
by throwaway894345 5y ago
I’m confused. Why do you need to snapshot live processes? Are we concerned about startup time of Postgres or whatever? Also, why is isolation needed for e2e tests? Lastly, why is docker-in-docker a requirement, and how is that easier than qemu in qemu or qemu in docker or whatever?
- colinchartier 5y ago> Why do you need to snapshot live processes? Often times there are long-living processes which rarely change but take a long time to warm up. The Bazel [1] agent for C++ projects, the buildkit [2] state for docker, or the running Postgres or Redis server for a cloud native app for example. It's why running "docker build" twice on your laptop is so fast, but running "docker build" in CI seems glacially slow. > why is docker-in-docker a requirement, and how is that easier than qemu in qemu or qemu in docker or whatever? The example given was running "docker-compose build", so you'd need either docker-in-firecracker (this post), docker-in-docker, or docker-in-qemu. You'd almost never run docker-compose build on bare metal in practice, because you'd immediately need to send the images you built somewhere else in order to use them. [1] https://bazel.build/ https://bazel.build/ [2] https://docs.docker.com/develop/develop-images/build_enhancements/ https://docs.docker.com/develop/develop-images/build_enhance...
- cpuguy83 5y agoBut that's state on disk, not process state. It should not affect startup time in buildkit. I'm not experienced enough with Bazel to comment on that.