IT 개발,관리,연동,자동화

VS Code 원격 개발 환경 구축: Docker 컨테이너 내 프로젝트 편집 및 실행 가이드

_Blue_Sky_ 2024. 11. 6. 16:42
728x90
728x90

VS Code를 이용하여 원격의 Docker 컨테이너 내 프로젝트를 직접 수정하고 실행하는 것은 개발 생산성을 크게 향상시킬 수 있는 강력한 방법입니다. 이 글에서는 VS Code의 Remote Development 확장과 Docker 플러그인을 활용하여 이러한 환경을 구축하는 방법을 상세히 안내합니다.

왜 원격 개발 환경이 필요할까요?

  • 환경 일관성: 개발 환경을 컨테이너 이미지로 정의하여 개발자 간 환경 차이를 최소화하고, 배포 환경과의 일관성을 유지할 수 있습니다.
  • 격리된 환경: 각 프로젝트를 독립적인 컨테이너에서 실행하여 프로젝트 간의 간섭을 방지하고, 시스템 자원을 효율적으로 관리할 수 있습니다.
  • 다양한 환경 지원: Docker 이미지를 활용하여 다양한 운영체제, 프레임워크, 라이브러리를 손쉽게 설치하고 사용할 수 있습니다.
728x90

준비물

  • VS Code 설치: [유효하지 않은 URL 삭제됨] VS Code를 다운로드하여 설치합니다.
  • Docker 설치: [유효하지 않은 URL 삭제됨] Docker를 다운로드하여 설치합니다.
  • VS Code Remote Development 확장 설치: VS Code 확장에서 Remote Development를 검색하여 설치합니다.
  • Docker 플러그인 설치: VS Code 확장에서 Docker를 검색하여 설치합니다.

1단계: Docker 이미지 준비

  • Dockerfile 작성: 원하는 개발 환경을 구축하기 위한 Dockerfile을 작성합니다.
# Dockerfile 예시 (Node.js 개발 환경)
FROM node:18-alpine

WORKDIR /app

COPY package*.json ./

RUN npm install

COPY . .

CMD ["npm", "start"]
 
  • 이미지 빌드: 작성한 Dockerfile을 기반으로 이미지를 빌드합니다.
docker build -t my-node-app .
 

2단계: 컨테이너 실행

  • 컨테이너 실행: 빌드한 이미지를 기반으로 컨테이너를 실행합니다.
docker run -it --name my-node-container -p 3000:3000 my-node-app

3단계: VS Code에서 원격 연결

  • Remote Explorer 열기: VS Code 왼쪽 활동 탭에서 Remote Explorer 아이콘을 클릭합니다.
  • Containers 선택: Containers를 선택하여 실행 중인 Docker 컨테이너 목록을 확인합니다.
  • 컨테이너 연결: 연결하려는 컨테이너를 선택하면 VS Code가 컨테이너 내부로 연결됩니다.

4단계: 프로젝트 열고 개발 시작

  • 프로젝트 열기: 컨테이너 내부에서 프로젝트 폴더를 열고 개발을 시작합니다.
  • 코드 편집, 디버깅: 로컬 환경에서와 동일하게 코드를 편집하고, 디버깅할 수 있습니다.
  • 터미널 사용: 컨테이너 내부에서 터미널을 열어 명령을 실행할 수 있습니다.
728x90

추가 설정 (선택 사항)

  • devcontainer.json 파일: 프로젝트 디렉토리에 .devcontainer.json 파일을 생성하여 컨테이너 설정을 커스터마이징할 수 있습니다.
  • VS Code 설정: VS Code 설정을 통해 원격 개발 환경을 더욱 편리하게 사용할 수 있습니다.

주의 사항

  • 네트워크 설정: 컨테이너와 호스트 간의 네트워크 설정을 확인하여 원활한 통신이 가능하도록 합니다.
  • 파일 동기화: 파일 변경 시 컨테이너와 호스트 간의 동기화가 제대로 이루어지는지 확인합니다.
  • 확장 기능: 일부 확장 기능은 원격 환경에서 제대로 작동하지 않을 수 있습니다.

 VS Code의 Remote Development 기능을 활용하면 Docker 컨테이너 내에서 편리하고 효율적인 개발 환경을 구축할 수 있습니다. 이를 통해 개발 환경의 일관성을 유지하고, 다양한 프로젝트를 효과적으로 관리할 수 있습니다.

728x90
728x90