今どきのWeb開発環境はDockerでの構築が一番楽にできるので、私は個人開発でも基本Dockerです。公開用のファイルも書けばスムーズに本番まで持っていけますし、Dockerをあえて避ける理由はほぼないですね。
なお、私はVimmerなのでDockerもターミナルコマンドで操作しますが、標準コマンドの「docker-compose XXX」(最新版はdocker composeとサブコマンドに変更されています)はどう考えても打ちづらく長すぎます。どのコマンドを打ち込む時も必ず入力するのに、設計者は何を考えてこのコマンド名にしたんでしょうね。そこだけは不満と言っちゃ不満でしょうか。
とはいえ、 ターミナルカスタマイザの1つ「Oh My Zsh」では、docker用の超短縮コマンドがいくつも提供されています。 一言で言えば、好きな拡張機能をインストールして、テーマや短縮コマンドを色々と追加できるターミナル版ランチャーみたいなアプリです。
使えるコマンドの例:
- 「dcupd」コンテナ群のバックグラウンド起動(docker-compose up -dと同じ)
- 「dcdn」コンテナ群の一斉終了(docker-compose downと同じ)
私は上記に指が慣れていたので、標準で強力なカスタマイズやAI補完機能が付いたWarpターミナルに移行してOh My Zshが不要になった今も、自分でzshrcに同じ設定を書いて使ってます。慣れるとVSCodeのショートカットキーとほぼ同じ速度で実行できますし、マウスよりは確実に速いですね。
今はFishシェルなのでzshrcではなくfishファイルに書いてますが。
でも私はDocker Desktopも併用しているので、あまり使わない(Warpが履歴で補完してくれない)コンテナに入りたい時などはGUI経由で入ることもあります。楽な方で。
今のターミナルはWindowsではAlacritty、MacではGhosttyです。
自動補完に強いFishシェル+軽量ターミナルに移行してWarpは使わなくなりました。
正直コマンドの長さ以外にそんなに不便な点はないです。昔は開発環境にMAMPとかVagrantとかVMwareとかいろいろなツールを使ってきましたが、 今ではどのフレームワークや言語もデファクトスタンダードになったDockerに超親切なので、おそらくしばらくはDockerが一番便利で簡単な開発環境構築手段だと思いますよ。 (MacではDockerのバックエンドにColimaを使用しているのは内緒です)
最近はPHPのHerd、DBのDBnginなどネイティブ系アプリも便利になってきました。
私もそろそろDocker一色ではなくなりそうなので念のため。
(追記) Dockerではコンテナのビルドがキャッシュできないとおっしゃる方もいるようですが、 Dockerでも開発中に毎回ビルドを通す必要はありません。環境変数やフレームワークの設定やサーバーの起動パラメータ等で開発環境であることを知らせて実行すれば、編集されたコードを自動で取り込むためビルドは不要になります。 毎回ビルドが必要と感じている方は、恐らく本番モードでサーバーやフレームワークを起動しているのだと思います。設定方法は言語やフレームワークによって異なりますが、良ければ調べてみてください。ご参考までに。