Docker合成設定の問題


背景


Spring bootとSpring securityを使用してユーザー認証を実現し、Redisをキャッシュサーバとして使用したいと考えています.Springプロジェクトの応用.ymlに対してredis関連設定を行い、以下に示す.
spring:
  config:
    activate:
      on-profile: local
  redis:
    host: 127.0.0.1
    port: 6379
Spring Project Docker-Composeは、Spring Boot環境の統合テストにより、ローカルに問題がないことを確認し、Dockerを使用してSpringプロジェクトとRedisをEC 2サーバに配備します.ymlファイルとredisのdocker-compose.ymlファイルを作成し、コンテナにそれぞれアップロードします.

質問する


application.ymlのredis.ホストが認識できないためサーバに配備されたSpringプロジェクトはRedisに接続できません.通常、ipではなくコンテナサービス名が使用されます.
したがってhostとredisサービス、コンテナ名はredisに変更されましたが、問題は解決しませんでした.

の原因となる


SpringプロジェクトとRedisをそれぞれドッキングします.理由はymlに分離した後、Springプロジェクトはサービス名だけでredisが見つからないためかもしれません.

解決する


分離docker-composeymlを1つに結合しdependen onでソートします.接続できない問題は解決しましたが、redisのcustom設定ファイルを使用していないので、Springとredisは一緒にいるべきで、これは最善の方法ではありませんので、優先度を下げてより良い解決策を探すべきです.