経緯
今までは anyenv を使用し各種言語のバージョン管理をしていたが、env系の各種設定が面倒くさくなってきた。
docker を使用し、一時的にコンテナを立てて実行すればいいかもしれないと考えたのでやってみた。
やってみた!
下記は、nodejs14系 を使いたい時の例
# project ディレクトにて
docker run --rm -it -v $(PWD):/app --workdir /app node:14 npm install
-v でプロジェクトを適当なディレクトリにマウントする。
マウントしたディレクトリを、workdir で指定し、コマンドを実行すればOK
また、--rm を指定し、実行後にコンテナを自動削除すればコンテナの死骸が増えずに済む。
開発にて
実際の開発では、長ったらしいコマンドを実行するのが面倒くさいのでシェルスクリプトを作成するのがおすすめ
touch npm.sh
chmod +x npm.sh
ファイルを作成し、実行権限を付与
npm.sh
#!/bin/bash
docker run --rm -it -v $(PWD):/app --workdir /app node:14 npm $@
$@ で引数を受け取れるようにすることで、npm の各種コマンドに対応できるようにする
./npm.sh install react
./npm.sh run dev
上記のように各種コマンドの実行が可能!
注意点
composer を上記のように利用したときは、phpの拡張が足りず一部インストールできないパッケージがあった。
その場合は、自前でphp拡張各種インストールしたdocker image を作成する必要がある。