This repository defines a set of images which may be used
to run LaTeX in a container, for example in CI/CD.
They come in several flavors, which correspond to TeX Live schemes
(see the table below).
The default scheme is full
which contains all packages.
If some package is missing you can always use tlmgr
to install it.
The image is based on alpine
, so system packages
may be installed using apk
.
Scheme | Image | Size |
---|---|---|
minimal | kjarosh/latex:2024.1-minimal |
~40 MB |
basic | kjarosh/latex:2024.1-basic |
~90 MB |
small | kjarosh/latex:2024.1-small |
~180 MB |
medium | kjarosh/latex:2024.1-medium |
~500 MB |
full | kjarosh/latex:2024.1 |
~2 GB |
The images are made in such a way that they reuse layers.
For example full
will add a layer to medium
with packages that are
not present there.
This makes it easier to manage and saves space.
Versions are in the format of <major>.<minor>
.
The major version relates to TeX Live version (which is the year),
the minor version is the version of the image within the given year.
In order for tlmgr
to work, the year in the version must be current,
because the default mirror does not support archival TeX Live releases.
Example using make
:
name: Compile LaTeX
on: [ push ]
jobs:
container:
runs-on: ubuntu-latest
container: kjarosh/latex:2024.1
steps:
- name: Install make
run: apk add make
- name: Checkout
uses: actions/checkout@v2
- name: Build
run: make
- name: Upload document
uses: actions/upload-artifact@v2
with:
name: main-document
path: out/index.pdf
Example using make
:
image: kjarosh/latex:2024.1
build:
stage: build
before_script:
- apk add make
script:
- make build
artifacts:
paths:
- out/index.pdf