개발 컨테이너는 VS Code 전용이 아닌 일반적인 Docker 컨테이너입니다. .devcontainer
폴더와 devcontainer.json
파일을 사용하여 편집기/IDE 통합을 용이하게 합니다. devcontainer.json
은 컨테이너 이름, 빌드 정보, postCreateCommand
등을 정의합니다. 기존 Rails 앱을 컨테이너화하려면 .devcontainer
폴더 내에 Dockerfile
, entrypoint.sh
, docker-compose.yml
, devcontainer.json
을 구성해야 합니다. Dockerfile
은 Ruby, Node.js, Yarn 등 필수 패키지 및 Rails, Bundler를 설치하고, entrypoint.sh
를 준비합니다. entrypoint.sh
는 bundle install
, PostgreSQL 대기, rails db:create
, rails db:migrate
등 초기 설정을 자동화합니다. docker-compose.yml
은 Rails 웹 서비스와 PostgreSQL DB 서비스를 정의하며, 볼륨 마운트, 포트, 환경 변수 등을 설정합니다. devcontainer.json
은 dockerComposeFile
, service
, workspaceFolder
를 지정하고, VS Code 확장 및 postCreateCommand
를 통해 자동화된 초기 작업을 수행하도록 설정합니다. 설정이 완료되면 docker compose
명령으로 컨테이너를 빌드하고 실행하며, VS Code Dev Containers 확장을 통해 통합된 개발 환경을 구축할 수 있습니다. localhost:3000
으로 앱에 접근 가능하며, 컨테이너 내에서 테스트 실행(예: bundle exec rspec
)도 지원됩니다.
Rails 개발 컨테이너 설정하기
Setting Up Rails with Dev Containers
작성자
발행일
2025년 07월 23일
핵심 요약
- 1 개발 컨테이너는 팀 내 애플리케이션 설정 및 코드 공유의 용이성을 보장하는 재현 가능한 개발 환경을 제공합니다.
- 2 본 문서는 Rails 애플리케이션에 개발 컨테이너를 설정하는 최소한의 예시와 함께 핵심 개념을 소개합니다.
- 3 Dockerfile, entrypoint.sh, docker-compose.yml, devcontainer.json 파일을 활용하여 기존 Rails 앱을 컨테이너화하는 방법을 상세히 설명합니다.
도입
재현 가능한 개발 환경은 팀 내 애플리케이션 설정 및 코드 공유를 용이하게 하는 핵심 요소이며, 개발 컨테이너는 이를 위한 효과적인 방법입니다. 이 글은 개발 컨테이너의 본질을 소개하고, 특히 기존 Rails 애플리케이션에 개발 컨테이너를 설정하는 구체적인 방법을 제시합니다. Rails 8+ 신규 앱은 기본 설정이 가능하지만, 본 가이드는 이미 운영 중인 앱을 컨테이너화하는 데 초점을 맞춥니다.
결론
IDE 통합이 더 편리할 수 있지만, 개발 컨테이너는 모든 팀원이 Docker만 설치되어 있다면 편집기 종류와 무관하게 재현 가능한 개발 환경을 제공하는 강력한 이점을 가집니다. `dip`와 같은 도구를 활용하면 복잡한 Docker 명령을 간소화하여 개발 경험을 더욱 개선할 수 있습니다. 결론적으로, 개발 컨테이너는 Rails 애플리케이션의 개발 환경을 표준화하고 팀 협업을 강화하는 유연하고 강력한 솔루션입니다.