프로젝트 소개
Rancher Desktop은 Windows, macOS, Linux에서 Kubernetes와 컨테이너 관리를 제공하는 오픈소스 데스크톱 애플리케이션입니다. 이 프로젝트는 주로 TypeScript로 작성된 Electron 애플리케이션으로, 여러 기술을 하나의 응집력 있는 도구로 묶습니다. 여기에는 Go로 작성된 명령줄 유틸리티인 rdctl이 포함됩니다.
README는 Rancher Desktop 자체를 개발하는 개발자를 대상으로 합니다. 사용자 대상 정보는 rancherdesktop.io에, 사용자 문서는 docs.rancherdesktop.io에 있습니다.
개발 워크플로:
- 대부분의 작업(개발 빌드, 패키징, 단위 테스트, 엔드투엔드 테스트)은 yarn 스크립트를 통해 실행됩니다. BATS 테스트와 같은 일부 예외가 있습니다.
- Windows 설정은 두 가지 형태로 제공됩니다. 자동화된 PowerShell 설정 스크립트가 있는 Microsoft Windows 10 개발 가상 머신, 또는 WSL, Scoop, nvm, Desktop development with C++ 워크로드와 Windows SDK가 포함된 Visual Studio, 그리고 git 줄바꿈 설정을 사용하는 수동 환경입니다.
- macOS 설정은 nvm을 사용해 Node 22, yarn, Homebrew를 통한 Go를 설치합니다. Apple M1 머신에서는 의존성을 설치하고 스크립트를 실행하기 전에 M1 환경 변수를 설정해야 합니다.
- Linux 설정에는 개발 패키지가 포함된 Node.js v22, yarn classic, Go 1.22 이상, 그리고 ffi-napi 패키지를 빌드하기 위한 node-gyp용 C/C++ 툴체인이 필요합니다.
실행 및 테스트:
- yarn dev는 개발 버전을 실행합니다.
- yarn test는 단위 테스트를 실행하고, yarn test:e2e는 통합 테스트를 실행합니다.
- yarn build와 yarn package는 dist/에 빌드 출력을 생성합니다. 크로스 컴파일은 지원되지 않습니다.
디버깅:
- Chrome 원격 디버깅은 Linux, macOS, Windows에서 --remote-debugging-port 및 --remote-allow-origins 플래그로 활성화할 수 있으며, 이후 Chrome에서 로컬 포트를 통해 접근할 수 있습니다. 확장 기능도 확장을 로드한 뒤 같은 방식으로 원격 디버깅할 수 있습니다.
- GoLand(및 유사한 JetBrains IDE)는 Node.js 플러그인과 scripts/ts-wrapper.js scripts/dev.ts를 가리키는 Node.js 실행 구성을 사용해 개발 환경을 디버깅할 수 있습니다.
개발 빌드:
- Windows와 macOS에서는 각 커밋이 .exe 및 .dmg 아티팩트를 업로드하는 GitHub Actions를 트리거합니다.
- Linux에서는 GitHub Actions가 프로세스의 일부를 수행하고 Open Build Service가 이를 완료합니다. dev 및 stable 채널이 있으며, dev 빌드는 main 브랜치와 release-* 브랜치에서 나오고 버전은 priority.branch.commit_time.commit 형식입니다. .deb 및 .rpm 개발 저장소를 추가하고 개발 AppImage 빌드에 접근하는 방법에 대한 지침이 제공됩니다.
API:
- Rancher Desktop은 pkg/rancher-desktop/assets/specs/command-api.yaml에 정의된 제한된 HTTP 기반 API를 지원하며, 클라이언트 예제는 go/src/rdctl에 있습니다. API는 버전 1이지만 내부 및 실험적인 것으로 간주되며 예고 없이 변경될 수 있습니다.
기여 및 추가 자료:
- CONTRIBUTING.md 문서와 docs/development/ 디렉터리에서 추가 개발자 문서를 제공합니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.