TeXLiveしたい(texlive)

# compose.yaml
services:
  tex:
    image: texlive/texlive:latest-full
    volumes:
      - .:/workdir
    working_dir: /workdir
    command: ["latexmk", "main.tex"]

コンテナーを起動したい

$ docker compose up

コンテナーで操作したい

$ docker compose exec tex bash

コンテナーを終了したい

$ docker compose down

ディレクトリ構造

project/
├── compose.yaml
├── main.tex
├── chapters/
│   ├── chapter1.tex
│   └── chapter2.tex
└── figures/
    └── image.png

compose.yamlと同じディレクトリが作業ディレクトリ(/workdir)としてマウントされます。 main.texや関連ファイルはすべて compose.yamlと同じ階層に配置してください。

% main.tex
\input{chapters/chapter1}
\input{chapters/chapter2}
\includegraphics{figures/image}

\input{}や\include{}で読み込むファイル、画像、.bibファイルなどはサブディレクトリに整理しても構いません。

compose.yamlより外側(親ディレクトリなど)に置いたファイルはマウントできないため、コンテナ内からは参照できません。

TeXLiveについて

TeXLiveはLaTeX環境のDockerイメージです。 サービス名をtexとしており、イメージは最新版を指定しています。 ボリュームでホストディレクトリを/workdirにバインドマウントすることで、手元のファイルをコンテナ内で処理できるようにしています。 docker compose upするとcommandに設定した内容が実行され、LaTeX文書をPDFに変換できます。 コンテナー内でlatexmkやpdflatexといったコマンドを使って文書を処理できます。