dockernizeを布教する(TeX環境)

TeXの環境をインストールするの,面倒じゃないですか?

この記事はTUT Advent Calendar 20202日目の記事です.

豊橋技術科学大学 M1 げっぱです.普段は教育工学の研究してます.応用数理ネットワーク研究室という研究室名からは想像つかない研究分野ですよね.

師走ということで忙しいですが,息抜きにAdvent Calender3本書かせてもらいます.多すぎたらごめんなさい.

動機

つい先日PCを新調したのですが,元々Dockerの考え方が好きだったことと,TeX環境の複雑さに嫌気がさしていて新しいPCを汚すのが嫌だったので,いっそDockerの使い捨てコンテナでTeXを運用すればいいじゃんと思いつきました.

わざわざ毎回,`docker run --rm ...`なんて打ち込んだりするのは面倒だし,TeXを利用する他のソフトウェアがあると`xelatex`と打てば動くようにしておかないとだめなので,と思いシェルスクリプトで色々書きました.

超宣伝

getpa/DockernizeEnvironment https://github.com/getpa/DockernizeEnvironment

Why don't you dockernize?

何を書いたかなどはリポジトリを公開しているので参照していただければいいかと.気に入って,さらに機能を追加したい方は是非PRお願いします.

ざっくりした説明

シェルスクリプトを駆使して,`docker run --rm ...`みたいなコマンドのラッパーを書いてます.

さらに,TeX環境のDocker Imageは少しモディファイしていて,latexdiff-vcを動かすためにgitをインストールしてます.

イメージサイズがデカくなって逆に非効率なんじゃね?という意見もあると思いますが,僕はディスク容量を気にするよりは環境の綺麗さを優先したいと思っているので,あまりイメージサイズは気にしてません.さらに言えば,データは逐一NASにバックアップないし退避させているので,PCそのものにはさほどデータ入ってません.

本当はpythonとかjuliaとかnode.jsとかdotnetとかrubyとか全部Dockernizeしたいんですが,Docker Desktop for macでは--network hostが機能しないのでにゃーんって感じです.もしこれが機能すれば,ぜーーーんぶDockerの使い捨てコンテナで運用したいですね.

※プロジェクト単位でdocker-composeなどを使えばDockernizeできますが,インタラクティブシェルとかをDockernizeして挙句node.jsで作ってあるツールなんかをDockerで動かしたいです.

さて,3日目はpakutomaさんの「豊橋市麻婆豆腐最強キャラランキング あと意外とみんな知らない豊橋駅前無料駐輪場情報」ということで,俺得記事です.


さらに追加でそのうち書くかもしれません.