New lsst-texmf Docker images

Today we’re launching a revised lsst-texmf Docker image for compiling Rubin Observatory LaTeX documents that’s smaller, features Python 3.7, and builds faster.

Here’s a summary of the new features:

  • By including Python 3.7 in the Docker image, your document’s make build can now run Python scripts. These scripts can be any of lsst-texmf’s built-in scripts (such as generateAcronyms.py and db2authors.py) or your own scripts included in your document’s repository. If your script needs third-party dependencies, you can PR it into the Docker image through a requirements.txt file.
  • We’ve reduced the Docker image size from 3.5 GB down to about 2 GB thanks to a more careful curation of texlive packages and by not installing texlive documentation.
  • The lsst-texmf repository’s CI is now much faster for two reasons. First, we switched to GitHub Actions. Second, we cache a base image for a multi-stage Docker image build so that CI doesn’t need to apt-get install the full suite of texlive packages every time. The base image is refreshed on a weekly basis.

We’ve tested this new Docker image on a range of Rubin Observatory documents. If you notice that your document doesn’t build, though, let us know and we can make the necessary adjustments.

For more information about compiling LaTeX documents using the lsst-texmf Docker image, see our documentation.

1 Like

To demonstrate the performance difference, this lsst-texmf build on Travis CI took 6 minutes 26 seconds:

GitHub Actions took 2 minutes 58 seconds to build, test, and upload lsst-texmf images:

As you can see, it takes about 55 seconds to download the cached images, and only 14 seconds to rebuild the images with the new version of lsst-texmf.