/note/tech

docker としての asdf ― あるいは、なぜ私は anyenv から乗り換えたか

asdf を使えば、任意のディレクトリに紐づく言語のバージョンを指定でき、そのディレクトリに移動したタイミングで、当該のバージョンへの PATH を自動で通すことができます。

一方で、WEB フロントエンドやモバイルアプリなど、本番環境で docker を利用しないシチュエーションというのも存在します。そのような場面でも、各開発者間の環境差分をなくすという観点から、 開発環境として docker を利用するメリットがあります。一方で、ディスク I/O が遅いといったパフォーマンスなどのデメリットが存在するのもまた事実です。 特に iOS アプリ開発に関しては、macOS の docker image が公式に存在しないことから、開発を docker 上で行うことは困難を極めると言っていいでしょう。

そのデメリットがメリットを上回ったと判断される時、ローカル開発環境としては docker を利用せず、各開発者の PC 上で環境を用意する運用となります。 その場合、リポジトリの README などに言語やツールのバージョンを記載し、各開発者がそのバージョンをインストールするよう求められることになりますが、asdf を利用すれば、asdf install などのコマンドで全てのツールを一度にインストールすることができます。

ふーむ

Dockerが使えるならDockerを使えばよさそう。

文中でも触れられてるように、Docker Imageが存在しないMac系の開発の場合は有益っぽい。