피드로 돌아가기
Dev.toInfrastructure
원문 읽기
Wildcard DNS 및 TLS 자동화로 개발 환경 구축 진입장벽 제거
Building a devcontainer for Topaz: workspace mounts, DNS wildcards, and why /etc/resolv.conf always wins
AI 요약
Context
Azure Storage 및 Key Vault 등을 에뮬레이션하는 Topaz의 개발 환경 구축 시 수동 TLS 인증서 설정과 DNS 구성으로 인한 높은 Friction 발생. VS Code Dev Container의 Docker Compose 모드 사용 시 Workspace Mount 및 네트워크 설정의 불확정성으로 인한 실행 오류 직면.
Technical Solution
- Deterministic 환경 구축을 위해 172.28.0.0/16 서브넷 기반의 Static IP 할당 구조 설계
- VS Code의 불완전한 자동 Mount 대신 Docker Compose 파일 내에 명시적 Volume 선언을 통한 경로 확정
- *.topaz.local.dev 도메인 처리를 위해 dnsmasq 기반의 DNS Sidecar 컨테이너 도입
- 호스트 OS의 /etc/resolv.conf 우선순위 제약을 극복하기 위해 Sidecar 구조를 통한 네트워크 트래픽 라우팅 분리
- 외부 드라이브 및 런타임 설정에 따른 Bind Mount 실패 가능성을 배제한 파일 배포 전략 채택
실천 포인트
1. Docker Compose 기반 DevContainer 설계 시 Workspace Mount를 명시적으로 선언했는지 확인
2. Wildcard DNS 구현 시 호스트 OS의 resolv.conf 우선순위와 컨테이너 네트워크 브릿지 설정 대조
3. 외부 드라이브 사용 환경(Colima 등)에서 Bind Mount가 빈 디렉토리로 생성될 가능성을 검토
4. 서비스 간 의존성이 높은 환경에서 Static IP 할당을 통한 DNS 룰의 안정성 확보