Docker Desktop を更新したら Makefile が動かなくなった話
エラーは突然起こった
いつも通り make コマンドを入力して Docker Compose を動かそうとしました。
docker-compose run --build open-api-generator generate
すると何やら docker-compose がないらしい。
docker-compose: No such file or directory
つい数分前には動いていた Docker Compose ですが、もはや動いていた頃が懐かしい。
ただ幸運なことに今回は心当たりがありました。
それはついさっき促されるまま行った Docker Desktop の更新です。
何が起こった?
Docker Desktop の更新とともに Compose が V2 になりました。
Docker のブログを確認したところ、Compose V1 は 2023 年 6 月以降からサポートされていなかったらしい。
過去に記事を読み docker compose
を使う方が良さそうだと知り、コマンドを打つ時は既に切り替えていたが、昔書いた Makefile までを書き直すことはしていなかったので急に動かなくなり焦った。
ドキュメントを読む限り「今後サポートしないけど docker-compose
も一応使えるよ〜」と受け取れるが、バージョン確認をしても command not found: docker-compose
と出るので Docker Desktop 環境ではデフォルトで消えるらしい。
これを読んでいる皆様もお気をつけ下さい。
まとめ
docker compose
コマンドを使おう
docker-compose
コマンドを使うことを止めよう。
docker compose
コマンドを使うべきです。もはや一択と言っても過言ではないでしょう。
互換性の心配も基本的には問題ないように思えます。
Docker CLI 内のcomposeコマンドは、docker-composeコマンドとそのフラグをほぼサポートします。 このコマンドはdocker-composeと完全な互換性を持つものとしています。
過去に書いた Makefile や bash なども docker-compose
から docker compose
に切り替えておけば悲劇は起きませんでした。
補足資料
Compose V1 から V2 への移行について書かれたドキュメント
私の環境ではコマンドを変えるだけで大丈夫でしたが、それでもエラーが出る方は移行マニュアルが参考になると思います。
Discussion