docker-compose-blue.yml, docker-compose-green.yml 파일과 db, nginx 등을 관리하는 docker-compose.yml 파일 간의 통신이 필요했습니다.expose를 이용한 직접적인 통신이 불가능했습니다.명시적인 Docker 네트워크 생성
docker-compose.yml 파일에서 해당 네트워크를 등록하면 서로 다른 Compose 환경에서도 컨테이너 간 통신이 가능합니다.docker network create my_shared_network
services:
blue:
image: yulmam/infra_server:latest
container_name: blue
ports:
- "8080:8080"
environment:
- PROFILES=blue
- ENV=blue
networks:
- app_shared_network
networks:
app_shared_network:
external: true
###해당 네트워크를 통해 통신한다.
Nginx, redis를 관리하는 docker-compose.yml 예
services:
nginx:
image: yulmam/infra_nginx
container_name: nginx_server
ports:
- "80:80"
depends_on:
- redis
networks:
- app_network
- app_shared_network
redis:
image: redis:latest
container_name: redis_server
ports:
- "6379:6379"
networks:
- app_network
- app_shared_network
command: ["redis-server", "--appendonly", "yes"]
networks:
app_network:
driver: bridge
app_shared_network:
external: true