LaTeX の環境構築は Docker 使ったほうが早い
1. はじめに
LaTeX のインストールと言えば,情報工学科の学生なら一度は経験したことがあるでしょう.そして,きっとインストール時間の長さに絶望したに違いないのです.下手したら丸っと一日費やしてしまうのもざらにある,それが LaTeX の環境構築なのです.
実のところ,LaTeX の環境構築は Docker を使うと意外にもあっさりと終わってしまうということが知られています.そのため,自分は普段から LaTeX は Docker を使って環境構築するのがおすすめだよと喧伝しています.ただしひとつ問題がありました.それは定量的な比較結果を示せないということです.ググってもローカルインストールと Docker とで環境構築に係る時間を比較した情報は見当たりません.
このような事情から,実際に環境構築にかかる時間を比較してみることにしました.本記事では,GitHub Actions を使って Windows・Linux・Docker の 3 つの環境で LaTeX のセットアップにかかる時間を計測します.計測の結果,やはり Docker がもっとも環境構築にかかる時間が短いことがわかりました.
2. 方法
以下の3つの環境で TeX Live の環境構築にかかる時間を比較することにしました:
- Windows ローカル環境
- Linux ローカル環境
- Docker コンテナ環境
計測には GitHub Actions の Runner を利用することにしました.再現性やハードウェアスペックを簡単に揃えられること,それからワークフローの実行にかかった時間を自動で計測してくれるという手軽さを考慮しての判断です.GitHub Hosted Runner は通信速度が高く CPU 性能が低めなので,やや Docker に有利な条件ではあります.
2.1. Windows ローカル環境
Windows ではいくつか環境構築の方法がありますが,ここではネットワークインストーラーを CLI で実行する方法を採用します.ISO イメージを利用する方法のほうが早かったりするようですが,TeX Wiki ではネットワークインストーラーを用いる方法が推奨されているためより現実の状況に近い条件設定としてこちらを選びました.また,GitHub Actions で自動化する都合上 GUI インストーラーを用いる方法は困難だったため CLI で実行する方法を選びました.温情でソースコードやドキュメントはダウンロードしないように設定してあります.
2.2. Linux ローカル環境
Linux では apt install texlive-full
で TeX Live をフルインストールする方法を採用しました.これも Linux で TeX Live をインストールする場合もっともよく選択される方法だと推測したためです.
2.3. Docker コンテナ環境
Docker については texlive/texlive
イメージを使用しました.こちらは TeX Live がフルインストールされた TeX Live 公式のイメージです.Docker で LaTeX の環境構築を行う系の記事ではよく being24/latex-docker
や paperist/texlive-ja
が紹介されているのを見かけますが,素直に公式のイメージを使ったほうが無難です.LaTeX に限らず Docker イメージはよっぽどの事情がない限り公式のイメージを使うべきです.
3. 実験
実際に実験で使用した GitHub Actions のワークフローは以下のとおりです:
計測したいのは LaTeX の環境構築にかかる時間なので,Windows ではインストーラーのダウンロードも計測対象とします.また,LaTeX の環境構築が正常に完了したことを確認するため最後に lualatex --version
を実行します.2 度計測を行いました.各ワークフローの実行にかかった時間は以下のとおりになりました:
環境 | 1 回目 | 2 回目 |
---|---|---|
Windows | 48m 15s | 46m 13s |
Linux | 8m 40s | 6m 11s |
Docker | 1m 28s | 1m 33s |
4. 考察
実験の結果,やはり Docker のほうが環境構築にかかる時間が短いことが確認できました.Windows に至っては Docker のおよそ 30 倍の時間がかかっています.GitHub Hosted Runner の環境は通信速度が高く CPU 性能が低めなので Docker にやや有利な条件設定です.しかしながら,この 30 倍という差はそれを補って余りある気がします(知らんけど).
また,GitHub Actions で LaTeX のコンパイルをしたいという需要もあるでしょう.そうした場合には Docker を使うのがまず間違いなく最適だと言えます.
だいたい LaTeX はローカルが汚れる感じがあるのでコンテナ環境を使えるなら使えるに越したことはないです.
5. 結論
この記事では,GitHub Actions を使って Windows・Linux・Docker の 3 つの環境で TeX Live の環境構築にかかる時間を比較しました.その結果 Docker がもっとも短い時間で環境構築することができることがわかりました.これからは,このデータを携えて Docker を使うのおすすめだよ~と説得することができますね.
コードの公開状況
計測に使用したリポジトリはこちら:
Discussion