4 ms·
Disclaimer: I'm one of the engineers on the Quay team Quay doesn't (yet) support the idea of multi-step builds, but it is definitely on our roadmap. One recom
by jschorr 10y ago
Disclaimer: I'm one of the engineers on the Quay team
Quay doesn't (yet) support the idea of multi-step builds, but it is definitely on our roadmap.
One recommended approach would be to make use of our squashed image support [1]. You can build the artifacts using the in-image compiler toolchain and then delete it (in the same step or a followup step). If you then download the image as a squashed image, all deleted and overwritten files are automatically removed from the layer when it is created. Not a perfect solution, but definitely better than downloading all the unneeded binaries.
[1]: https://docs.quay.io/guides/squashed-images.html https://docs.quay.io/guides/squashed-images.html
- lobster_johnson 10y agoCool, thanks! But if I understand this correctly, you squash everything into a single layer? If so, that's unfortunately not a workable solution for production environments, because it would cause every deploy to create a completely unique image, and so there'd be no caching of layers and containers wouldn't share any data, thus preventing effective use of file caching and shared lib reuse. I'm also concerned that your cache behaviour wouldn't play well with an automatic workflow; whatever glue sits between Quay and Kubernetes would have to do a dummy pull just to "prime" your cache.