This introduces a Dockerfile for updating the Debian base as well as tlmgr. It is intended to be caching-friendly although it will use up more space than the previous approach of rebuilding from scratch.
The latest images have to be built from scratch once a new TL is released, afterwards the updates can take over.
There may be two extensions to this we should think about before merging which occurred to me while working on this after the discussion in #5:
- Do we still want to provide “fresh” images? I.e. we could keep the current building from scratch and only perform the updating in addition. I would imagine
latestetc. being the updated line and
latest-from-scratchor so being the one for fresh images. The reason I consider this question relevant is that for CI purposes without real caches (consider GitLab CI with shared runners as prime example), smaller images are better and the fresh images would save quite a lot Debian and TL updates. We could also consider keeping
latestfrom scratch every time and releasing the updated line as
latest-incrementalso that users who want incremental images explicitly opt in.
- Do we want to merge this before having the tree approach for latest? Otherwise, this needs some additional love to actually only build a tree image, update that and then layer the Debian image and its update layer on top. Considering the previous bullet point, it might be interesting because we could experiment with being incremental in TL even for the from scratch images while pulling the new Debian image every time just to see how it compares in terms of sizes. However, this tree layering is a non-trivial change to add.