dbca-wa / sdis

A web based project approval, documentation and reporting system
https://sdis.dbca.wa.gov.au/
8 stars 3 forks source link

Make Docker image smaller #205

Closed florianm closed 2 years ago

florianm commented 2 years ago

Problem

The Docker image contains texlive-full which makes it 6GB, 15-20 mins build time on GHA, 10 mins deploy time. The Annual report requires texlive-minimal plus a range of extra packages. The lazy way was to install texlive-full.

Feature

Reduce the installed texlive size by choosing a smaller base installation (texlive-minimal?) plus only the needed extra packages, and skip installation or delete latex docs. Doing so will be painful and time intensive, but speed up deployment cycles.

Minimal docker image: https://github.com/alchem0x2A/texlive-docker-minimal/blob/develop/Dockerfile SDIS image has tlmgr to install additional packages

florianm commented 2 years ago

See https://packages.debian.org/sid/texlive-... for what CTAN packages are included in each Debian package.

Excluded the following packages from texlive-full and ARAR still builds:

Meta-packages:

texlive-pstricks texinfo texlive-bibtex-extra texlive-extra-utils texlive-latex-extra texlive-fonts-extra texlive-fonts-extra-links

Functionality:

texlive-metapost texlive-font-utils texlive-binaries texlive-formats-extra texlive-games texlive-humanities texlive-music texlive-pictures texlive-publishers texlive-science

Languages:

texlive-lang-european texlive-lang-* (anything not English)

Any Docs

Docker image is now 1GB (down from 6GB) and builds in under 6 mins and deploys in under 1 min, down from 15min build / 10 min deploy.

florianm commented 2 years ago

PDF has errors - reopening. Adding more tex deps to Dockerfile until build errors are resolved.

florianm commented 2 years ago

Build errors with texlive-full:

! Package array Error:  Illegal pream-token (0.7cm): `c' used.

! Undefined control sequence.
\sls@ps@scrheadings@even@right@foot ...aggedRight 
                                                  \leftmark 
l.20267 \chapter
              *{Student Projects}
The control sequence at the end of the top line
of your error message was never \def'ed. If you have
misspelled it (e.g., `\hobx'), type `I' and the correct
spelling (e.g., `I\hbox'). Otherwise just continue,
and I'll forget about whatever was undefined.

Class scrbook Warning: Activating an ugly workaround for a missing
(scrbook)              feature of package `titlesec` on input line 65.

(/usr/share/texlive/texmf-dist/tex/latex/koma-script/scrextend.sty

Package scrextend Warning: This package was made to extend other classes but
(scrextend)                KOMA-Script classes by some features of the
(scrextend)                KOMA-Script classes.
(scrextend)                It should never be used with a KOMA-Script class.
(scrextend)                Loading of the package will be aborted.
florianm commented 2 years ago

v5.1.* has a smaller image (2.7GB) using a subset of texlive metapackages.