個人開発で開発しているWebアプリは「ブルー/グリーンデプロイメント」を採用していて、docker-composeのサービス名もblue、greenで分けていました
そこで発生した問題が「別アプリから接続する時、サービス名がblue、greenで切り替わってしまうと接続できなくなる」というもの
今回はdocker composeのaliases機能を利用して、上記問題に対処しました
aliases機能とは?
ChatGPTに聞いてみたところ「同じネットワーク内で、そのサービスに対する“追加のホスト名”を付ける機能」とのこと
念の為公式ドキュメントを見てみると「ネットワーク上のサービスの代替ホスト名を宣言します」とのこと
ChatGPTの説明で大丈夫そうですね
ということで、aliasesを使用すると、同一のdocker network内でaliasesで指定したホスト名でもサービスが動いているコンテナにアクセスできるようになります
自分のプロジェクトでは以下のように設定しています
networks:
ride_webservice_network:
aliases:
- ride-batch冒頭で紹介した通り、ブルーグリーンデプロイメントを行うために、サービス名をそれぞれブルー/グリーンで分けており、サービス名だけを頼りに接続設定を行うとデプロイのタイミングで通信が行えなくなります
上記のようにaliasesを設定しておくことで、ブルー/グリーンが入れ替わっても「ride-batch」という名称を接続が行えるようになります
以上
ということで、短いですがdocker composeのaliasesという機能の紹介でした
docker composeも環境構築のための最低限の機能しか利用していなかったのですが、調べてみると便利機能が色々ありそうです
最近ではAIに気兼ね無く聞くことができるので、開発もインフラ関連も新しい発見だらけで勉強になりますわ