피드로 돌아가기
Dev.toInfrastructure
원문 읽기
Two-hop socat 릴레이를 통한 Docker Container 내 Paper MCP 서버 연결 구현
How to Use Paper MCP Server Inside a Dev Container
AI 요약
Context
Docker 기반 Dev Container 환경에서 호스트의 Paper MCP 서버(127.0.0.1:29979)에 접근 시 Loopback 주소 불일치로 인한 ECONNRESET 발생. Paper MCP 서버가 오직 localhost 연결만 허용하는 엄격한 바인딩 제약으로 인해 일반적인 Docker Port Forwarding으로는 해결 불가능한 구조적 한계 존재.
Technical Solution
- Container 내 127.0.0.1 요청을 Docker Bridge Gateway로 전달하는 Container-side socat 릴레이 구축
- Bridge Gateway로 유입된 트래픽을 다시 호스트의 127.0.0.1로 포워딩하여 Paper MCP의 localhost 제약을 우회하는 Host-side socat 릴레이 설계
- Docker Compose의 command 설정을 통한 런타임 기반 자동 릴레이 활성화 및 IP Route 동적 추적 적용
- Systemd User Service를 통한 호스트 릴레이 스크립트의 생명주기 관리 및 자동 재시작 메커니즘 구현
- .mcp.json 설정 변경 없이 투명하게 트래픽을 전달하는 Transparent Proxy 구조 채택
실천 포인트
1. 대상 서비스가 localhost(
1
2
7.
0.
0.1)에만 바인딩되어 외부 IP 접속을 거부하는지 확인
2. 단순 Port Mapping이 아닌 트래픽 방향(Container → Host)에 맞는 Relay 전략 수립
3. Docker Bridge Gateway IP의 가변성을 고려한 동적 IP Resolve 스크립트 적용
4. 릴레이 프로세스의 안정성을 위한 Systemd 기반의 자동 복구 및 상태 관리 설정