Docker Compose V2で作成されるコンテナ名が変わった

GMOアドマーケティングのT.Kです。 開発環境をDocker Composeで構築していますが、コンテナ間の通信が出来なくなり、原因を調べたらコンテナ名が変わってました。

起きた事

コンテナ名を明示的に指定されていなかったので、V1では<PROJECT名>_<service名>_<連番>で作成されます。アプリケーション側はその命名規則を前提に、コンテナ名を指定して通信を行うように行なってました。V2ではハイフンを使うように変更されたので、<PROJECT名>-<service名>-<連番>で作成されます。アプリケーションからは存在しないとコンテナを通信しようとしてエラーになりました。

対策

container_nameで明示的にコンテナ名を指定する事でV1、V2両方の環境に対応出来ます。また、サービス名を使ってもコンテナ間の通信は行えます。

まとめ

開発ツールのアップデートはリリースノートをあまり見ないが、挙動が変わってしまう事もあるので、せめてメジャーアップデートは軽く目を通した方がいいですね。