컨테이너 네트워크 통일하기

Arin·2026년 2월 1일
post-thumbnail

문제

myapp컨테이너와 myapp-dev컨테이너와 연결된 Caddy(로드밸런서)가 myapp-dev 컨테이너를 찾지 못해 myapp-dev 컨테이너로 연결되는 url 접속시 503에러가 발생했다.

원인

두 컨테이너가 서로 다른 디렉토리에서 실행되어, Docker가 각각 별개의 네트워크(_webnet)를 생성했다. 그로인해 이미 Caddy와 연결된 myapp 컨테이너는 접속이 잘 되지만 추가로 연결하려는 myapp-dev는 인식을 못한 것이다.

해결

워크플로우 스크립트deploy-main.ymldeploy-dev.yml의 docker compose 명령어에 -p 옵션을 추가했다.

deploy-dev.yml

- name: Deploy Docker services
  run: | 
   ssh prod 'cd /opt/app-backup && sudo docker compose -p promptplace -f docker-compose.yml up -d --build app caddy'

deploy-main.yml

- name: Deploy Docker services (Dev)
  run: |
   ssh prod 'cd /opt/app-dev && sudo docker compose -p promptplace -f docker-compose.yml up -d --build app-dev'

이를 통해 실행 경로가 다르더라도 두 환경이 promptplace라는 하나의 네트워크를 공유하도록 설정을 변경했다. (참고로 여기서 promptplace는 내 프로젝트 이름이다.)
이제 Caddy가 동일한 네트워크 상에 있는 Dev 컨테이너를 정상적으로 인식하고 트래픽을 라우팅한다.

profile
헤맨만큼 내 땅

0개의 댓글