Dev Containers의 이해
Dev Containers는 Docker 컨테이너를 활용하여 이식 가능하고 재현 가능한 개발 환경을 표준화합니다. devcontainer.json 파일이 환경 구축 및 실행 방식을 정의하며, Features(재사용 가능한 도구 블록)와 Templates(사전 구성된 시작점)를 통해 컨테이너를 구성합니다.
Rails Dev Container 생성 및 핵심 파일 분석
rails new --devcontainer 명령으로 Dev Container 지원 Rails 앱을 생성하면 .devcontainer 디렉토리에 핵심 설정 파일인 devcontainer.json, compose.yaml, Dockerfile이 포함됩니다.
* devcontainer.json은 필요한 Features 선언, 환경 변수, 포트 포워딩, postCreateCommand 등을 정의합니다.
* compose.yaml은 rails-app 및 selenium 서비스 등을 정의하며, 컨테이너 유지(sleep infinity), 볼륨 마운트, 서비스 간 의존성을 설정합니다.
* Dockerfile은 Ruby 기본 이미지를 기반으로 개발 컨테이너에 필요한 추가 패키지 설치를 담당합니다.
사용자 정의 및 다양한 환경에서의 활용
devcontainer.json의 Features 변경, boot.sh 스크립트를 통한 추가 설정, compose.yaml을 통한 SSH 키 마운트 및 PostgreSQL 서버 추가 등으로 환경을 사용자 정의할 수 있습니다. Dev Container는 VS Code/Cursor, devcontainer-cli, GitHub Codespaces 등 다양한 환경에서 실행 가능하며, 특히 Cursor에서는 Rails Model Context Protocol(MCP) 서버를 설정하여 AI 에이전트의 코드 이해도를 높이는 고급 활용도 가능합니다.