TeX Liveしたい
$ docker container run --rm -v "$(pwd)":/workdir -w /workdir texlive/texlive:latest-full latexmk main.tex
texlive/texliveに、
(おそらく)公式のTeX Liveイメージがあります。
latest
タグは毎週更新されます。
イメージのタグは、TeX Liveのscheme
に合わせて用意されています(後述)。
docker
コマンドを毎回入力するのは大変なので、
下記のcompose.yaml
を作成するのがオススメです。
Docker Composeしたい
# compose.yaml
services:
tex:
image: texlive/texlive:latest-full
volumes:
- .:/workdir
working_dir: /workdir
command: ["latexmk", "main.tex"]
サービス名をtex
としました。
image
は原則、最新版(latest
)を指定します。
volumes
でホストディレクトリを/workdir
にバインドマウントすることで、
手元のファイルをコンテナ内で処理できるようにしています。
command
にコンテナを起動したときに実行する内容をリスト形式で記述しています。
$ docker compose up
docker compose up
するとcommand
に設定した内容の
$ latexmk main.tex
が実行されます。
実行後、コンテナは自動的に停止します。
過去のTeX Liveを使いたい
services:
tex:
image: texlive/texlive:TL2024-historic
volumes:
- .:/workdir
working_dir: /workdir
command: ["latexmk", "main.tex"]
TL{年}-historic
で、過去のTeX Liveを指定できます。
このhistoric
タグは、年ごとにひとつだけ存在します。
このタグは毎月リビルドされ、関連するパッケージなどは最新版に保たれるようになっています。
注釈
通常のタグは「その時点の状態」を指しますが、 TeX Liveの場合、通常とは異なる意味を持つので少し注意が必要です。
ファイルを変更したい
$ docker compose run --rm tex latexmk another.tex
docker compose run コンテナ名 コマンド
でcommand
の内容を上書きできます。
コンパイル対象のファイル名を変更したり、
latexmk
にオプションを追加したり、のような修正ができます。
$ docker compose run tex latexmk -pvc main.tex
$ docker compose down
-pvc
オプションでライブビューを有効にした場合、
docker compose down
して明示的にコンテナを終了する必要があります。
イメージを選びたい
$ docker pull texlive/texlive:latest
$ docker pull texlive/texlive:latest-full
$ docker pull texlive/texlive:latest-medium
$ docker pull texlive/texlive:latest-small
$ docker pull texlive/texlive:latest-basic
$ docker pull texlive/texlive:latest-minimal
$ docker container run --rm -it イメージ名 bash
[コンテナ内]$ tlmgr info --list --only-installed | wc -l
[コンテナ内]$ exit
TeX Liveはschemeと、含まれているパッケージ数を確認しました。 また、日本語LaTeXに必要なパッケージの有無も確認しました。
タグ名 |
サイズ |
パッケージ数 |
|
|
|
---|---|---|---|---|---|
|
5.2 GB |
4832 |
Yes |
Yes |
Yes |
|
1.8 GB |
1474 |
Yes |
Yes |
No |
|
1.2 GB |
355 |
Yes |
Yes |
No |
|
1.0 GB |
139 |
Yes |
Yes |
No |
|
985 MB |
63 |
Yes |
No |
No |
個人の環境に構築する場合はfull
を選択すればOKです。
レジストリのサイズは2.3GBと表示されていますが、
ダウンロードして展開すると5.2GBになりました。
プロジェクト用の環境を構築する場合はbasic
を選択し、
必要なパッケージを追加するのがよいと思います。
必要なパッケージを追加したい
1FROM texlive/texlive:latest-basic
2RUN tlmgr update --all \
3 tlmgr install \
4 luatexja \
5 fontspec \
6 siunitx \
7 caption \
8 minted \
9 biblatex \
10 markdown \
11WORKDIR /workdir
12VOLUME ["/workdir"]
13CMD ["latexmk", "main.tex"]
basic
などイメージを選択した場合、必要なパッケージは自分で追加する必要があります。
Dockerfile
を作成し、カスタムイメージを作成します。
$ docker image build --tag イメージ名:タグ名 .
イメージ名:タグ名を指定して、カスタムイメージを作成します。
$ docker container run --rm -v "$(pwd)":/workdir -w /workdir タグ名 latexmk main.tex
カスタムイメージを指定してdocker
コマンドを実行し、LaTeX文書がタイプセットできるか確認します。