콘텐츠로 이동

DevPod - 오픈소스 코드형 개발 환경 치트시트

DevPod - 오픈소스 코드형 개발 환경 치트시트

DevPod (Loft)는 클라이언트 전용의 오픈소스 도구로, 표준 devcontainer.json에서 모든 백엔드 — 로컬 Docker, 원격 SSH 머신, Kubernetes 클러스터, 또는 클라우드 VM — 에서 재현 가능한 개발자 환경을 만듭니다. “자체 호스팅, 의견 없는 GitHub Codespaces”처럼 생각해보세요. 모든 IDE (VS Code, JetBrains, 또는 브라우저)에서 작동하고, 플러그 가능한 제공자를 통해 환경이 실행되는 위치를 제어하며, 운영할 서버 구성 요소가 없습니다.

설치

방법방식
CLIGitHub Releases에서 다운로드 (Linux/macOS/Windows)
데스크톱 앱DevPod Desktop GUI 사용 가능
요구사항제공자 백엔드 (Docker, SSH 호스트, K8s, 클라우드)
확인devpod version

제공자 (환경이 실행되는 위치)

명령어설명
devpod provider add docker로컬 Docker 사용
devpod provider add ssh --option HOST=user@host원격 머신 사용
devpod provider add kubernetesK8s 클러스터에서 실행
devpod provider add aws (gcloud, azure)클라우드 VM 제공자
devpod provider list구성된 제공자 나열
devpod provider use docker기본 제공자 설정

워크스페이스 생성

명령어설명
devpod up .현재 저장소의 devcontainer에서 환경 시작
devpod up github.com/org/repoGit 저장소 URL에서
devpod up . --ide vscode특정 IDE에서 열기
devpod up . --provider kubernetes백엔드 선택
devpod up . --recreate워크스페이스 재구축

워크스페이스 관리

명령어설명
devpod list워크스페이스 나열
devpod stop <name>워크스페이스 중지
devpod delete <name>워크스페이스 삭제
devpod ssh <name>워크스페이스로 SSH
devpod status <name>워크스페이스 상태 표시

devcontainer.json (스펙)

DevPod는 열린 Dev Container 스펙을 사용하므로 동일한 파일이 Codespaces, VS Code, DevPod에서 작동합니다.

{
  "name": "my-project",
  "image": "mcr.microsoft.com/devcontainers/base:ubuntu",
  "features": {
    "ghcr.io/devcontainers/features/node:1": { "version": "20" }
  },
  "postCreateCommand": "npm install",
  "customizations": {
    "vscode": { "extensions": ["dbaeumer.vscode-eslint"] }
  }
}
필드목적
image / dockerfile기본 환경
features조합 가능한 추가 기능 (언어, 도구)
postCreateCommand생성 후 실행 설정
forwardPorts노출할 포트
customizationsIDE 특정 설정/확장

IDE 통합

IDE방식
VS Code--ide vscode (데스크톱 또는 브라우저)
JetBrains--ide goland/pycharm/...
브라우저 (openvscode)--ide openvscode
SSH/터미널devpod ssh <name>

일반적인 워크플로우

# 저장소의 devcontainer에서 로컬 Docker 개발 환경
devpod provider add docker
devpod up github.com/org/project --ide vscode

# 무거운 빌드를 강력한 원격 머신으로 오프로드
devpod provider add ssh --option HOST=me@build-server
devpod up . --provider ssh

# Kubernetes의 일시적 클라우드 환경, 완료되면 삭제
devpod up . --provider kubernetes
devpod delete my-project

DevPod vs 대체

측면DevPodGitHub CodespacesDevboxGitpod
호스팅모든 백엔드 (선택)GitHub 클라우드로컬 (Nix)클라우드/자체 호스팅
스펙devcontainer.jsondevcontainer.jsondevbox.jsonGitpod 구성
서버없음 (클라이언트 전용)관리됨없음서버
최적 용도휴대용, 모든 클라우드 개발제로 구성 GitHub재현 가능한 로컬Git 트리거 워크스페이스

DevPod는 Codespaces와 동일한 devcontainer 스펙을 사용합니다. 로컬 Nix 기반 환경은 Devbox를 참조하세요.

자료