목표
nginx-proxy 이미지 없이 docker compose 를 활용하여 직접 MSA 구성한다.
과정
docker compose 구성
기존 docker compose 을 복사하기
cp compose.yaml ../manual_lb/docker compose 파일 수정
version: '3.8' name: awsgoo services: nginx-proxy: # image: nginx/nginx-proxy: 기존 이미지 제거 build: ../../docker_file/nginx # volumes: 도커 데몬과 통신할 수 있는 소켓 마운트 X -> 내가 직접 만든 이미지는 docker gen 의 프로그램이 없기 때문에 필요 없음 # - /var/run/docker.sock:/tmp/docker.sock:ro ports: - "9889:80" depends_on: - blog deploy: resources: limits: cpus: '0.20' memory: 50M reservations: cpus: '0.05' memory: 20M blog: build: ../../docker_file/httpd deploy: mode: replicated replicas: 1 # https://docs.docker.com/compose/compose-file/deploy/#replicas resources: # https://docs.docker.com/compose/compose-file/compose-file-v3/#resources limits: cpus: '0.05' memory: 50M reservations: cpus: '0.01' memory: 20M expose: - "80" environment: - VIRTUAL_HOST=aws.google.com,172.31.86.218,ec2-54-236-8-204.compute-1.amazonaws.com - VIRTUAL_PORT=80nginx 설정 변경
nginx 설정 파일 default.conf 에서 컨테이너 주소 변경(컨테이너 이름일 달라졌으므로 이름을 변경한다.)
docker compose 으로 컨테이너 구동
docker compose -f compose.yaml up -d
결론
기존 이미지 대신 직접 만든 nginx 이미지를 활용하여 docker compose 하여 msa 환경을 구성하였다. 기존 nginx-proxy 에는 docker-gen 프로그램이 있어 docker daemon으로 부터 이미지를 받아 뒷 단의 서비스의 replicas 변경되었을 때 자동으로 nginx 설정에 등록되었지만 내가 직접 만든 nginx 이미지에는 그런 기능이 존재하지 않아 불가능하다.
'devops' 카테고리의 다른 글
| Spring Cloud Gateway 와 Spring Eureka 를 통해 MSA 환경 구축 (0) | 2025.10.20 |
|---|---|
| SPRING GATEWAY 를 이용한 MSA( 멀티 서비스, 멀티 서버 구현하기) (0) | 2025.10.20 |
| GW LB 를 이용한 무중단 배포(업데이트) (0) | 2025.10.20 |
| docker 를 활용하여 직접 msa 구성 (0) | 2025.10.20 |
| docker compose 를 이용한 서비스 디스커버리 및 scale out - in (0) | 2025.10.15 |