Rancher Desktop은 Kubernetes 및 컨테이너 관리를 데스크톱에 제공하는 오픈 소스 프로젝트입니다. Windows, macOS 및 Linux에서 실행됩니다. 이 README는 Rancher Desktop 개발과 관련이 있습니다. Rancher Desktop에 대한 사용자 중심 정보는 rancherdesktop.io를 참조하세요. 사용자 중심 문서는 docs.rancherdesktop.io를 참조하세요.
Rancher Desktop은 주로 TypeScript로 작성된 Electron 애플리케이션입니다. 하나의 응집력 있는 애플리케이션을 제공하기 위해 다양한 다른 기술을 번들로 제공합니다. 여기에는 Go로 작성된 명령줄 도구인 rdctl
이 포함되어 있습니다. 개발 빌드 실행, Rancher Desktop 빌드/패키징, 단위 테스트 실행, 엔드투엔드 테스트 실행과 같은 대부분의 개발자 활동은 yarn
스크립트를 통해 수행됩니다. BATS 테스트 실행과 같은 일부 예외가 존재합니다.
Windows에서는 소스에서 빌드하는 데 두 가지 옵션이 있습니다. 개발 VM 설정을 사용하거나 기존 Windows 설치를 사용하여 수동 개발 환경 설정을 사용하는 것입니다.
Microsoft Windows 10 개발 가상 머신을 다운로드하세요. 다음 단계는 모두 해당 가상 머신에서 수행되어야 합니다.
PowerShell 프롬프트를 엽니다(Windows 키 + X
를 누르고 Windows PowerShell
열기).
자동 설정 스크립트를 실행합니다.
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser iwr -useb 'https://github.com/rancher-sandbox/rancher-desktop/raw/main/scripts/windows-setup.ps1' | 아이엑스
권한 있는 PowerShell 프롬프트를 닫습니다.
msbuild_path
및 msvs_version
.npmrc
파일에 올바르게 구성되어 있는지 확인하세요. 다음 명령을 실행하여 이러한 속성을 설정합니다.
npm config set msvs_version <visual-studio-version-number> npm config set msbuild_path <path/to/MSBuild.exe>
예를 들어 Visual Studio 2022의 경우:
npm config set msvs_version 2022 npm config set msbuild_path "C:Program FilesMicrosoft Visual Studio2022CommunityMSBuildCurrentBinMSBuild.exe"
npm config set...
실행하려고 할 때 오류 메시지가 표시되면 npm config edit
실행한 후 다음과 같은 줄을 추가하세요.
msvs_version=2022 msbuild_path=C:Program Files (x86)Microsoft Visual Studio2022CommunityMSBuildCurrentBinMSBuild.exe
등호 오른쪽에 값을 인용하지 마십시오. 따옴표는 필요하지 않으며 일부 프로세서에서는 따옴표를 문자 그대로 경로의 일부로 처리한 다음 실패할 수 있습니다.
Linux 및 Macos 원본 파일과 작동하도록 git
구성합니다.
git config --global --replace-all core.autocrlf false git config --global --replace-all core.eol lf
lint:go
테스트가 알 수 없는 이유로 실패하는 경우 줄 끝이 올바르지 않을 수 있습니다.
이제 저장소를 복제하고 yarn
실행할 수 있습니다.
머신에 WSL(Linux용 Windows 하위 시스템)을 설치합니다. WSL이 이미 설치되어 있으면 이 단계를 건너뛰세요.
PowerShell 프롬프트를 엽니다(Windows 키 + X
를 누르고 Windows PowerShell
열기).
iwr -useb get.scoop.sh | iex
.
7zip, git, go, mingw, nvm을 설치하고 scoop install 7zip git go mingw nvm python unzip
통해 압축을 풉니다. nvm list
로 노드 버전을 확인하세요. 노드 v20이 설치되지 않았거나 현재 버전으로 설정된 경우 nvm install 20
사용하여 설치하고 nvm use 20.xx.xx
사용하여 현재 버전으로 설정합니다.
npm install --global yarn
통해 Yarn 패키지 관리자를 설치합니다.
Visual Studio 2017 이상을 설치하세요. 이 글을 쓰는 시점에서 최신 버전은 [https://visualstudio.microsoft.com/downloads/]에서 다운로드할 수 있습니다. 변경된 내용이 있으면 좋은 검색 엔진이 이를 찾아낼 것입니다.
Windows SDK
구성요소가 설치되어 있는지 확인하세요. 이 Visual Studio 문서에서는 구성 요소를 설치하는 단계를 설명합니다. C++ 워크로드를 사용한 데스크톱 개발도 선택해야 합니다.
Linux 및 Macos 원본 파일과 작동하도록 git
구성합니다.
git config --global --replace-all core.autocrlf false git config --global --replace-all core.eol lf
lint:go
테스트가 알 수 없는 이유로 실패하는 경우 줄 끝이 올바르지 않을 수 있습니다. 9. msbuild_path
및 msvs_version
.npmrc
파일에 올바르게 구성되어 있는지 확인하세요. 다음 명령을 실행하여 이러한 속성을 설정합니다.
npm config set msvs_version <visual-studio-version-number> npm config set msbuild_path <path/to/MSBuild.exe>
예를 들어 Visual Studio 2022의 경우:
npm config set msvs_version 2022 npm config set msbuild_path "C:Program FilesMicrosoft Visual Studio2022CommunityMSBuildCurrentBinMSBuild.exe"
npm config set...
실행하려고 할 때 오류 메시지가 표시되면 npm config edit
실행한 후 다음과 같은 줄을 추가하세요.
msvs_version=2022 msbuild_path=C:Program Files (x86)Microsoft Visual Studio2022CommunityMSBuildCurrentBinMSBuild.exe
등호 오른쪽에 값을 인용하지 마십시오. 이는 필요하지 않으며 일부 프로세서에서는 이를 문자 그대로 경로의 일부로 처리한 다음 실패할 수 있습니다.
이제 저장소를 복제하고 yarn
실행할 수 있습니다.
Node.js와 npm을 얻으려면 nvm
설치하세요.
https://github.com/nvm-sh/nvm#installing-and-updating을 참조하고 curl
또는 wget
명령을 실행하여 nvm을 설치하세요.
이 스크립트는 nvm
을 처리하는 코드를 프로필 파일(예: ~/.bash_profile
)에 추가합니다. 현재 셸 세션에 nvm
에 대한 액세스를 추가하려면 해당 파일을 source
해야 합니다.
현재 우리는 Node 20으로 Rancher Desktop을 구축하고 있습니다. 설치하려면 다음을 실행하세요.
nvm install 20.17
다음으로 Yarn 패키지 관리자를 설치해야 합니다.
npm install --global yarn
go를 설치하지 않은 경우에는 brew install go
실행해야 합니다.
그런 다음 다음을 사용하여 종속성을 설치할 수 있습니다.
yarn
⚠️ M1 칩이 탑재된 Mac에서 작업하시나요?종속성을 설치하고 npm 스크립트를 실행하기 전에
M1
환경 변수를 설정해야 합니다.export M1=1 yarn이전에
M1
설정하지 않고 종속성을 설치한 경우git clean -fdx
실행하여 캐시된 자산을 모두 정리하고 올바른 아치로 다시 다운로드한 후yarn
실행하는 것이 좋습니다.
다음이 설치되어 있는지 확인하십시오.
Node.js v20. 개발 패키지가 설치되어 있는지 확인하세요. 예를 들어, openSUSE Leap 15.6에서는 nodejs20
및 nodejs20-devel
설치해야 합니다.
원사 클래식
1.22 이상으로 이동하세요.
node-gyp
문서 설치에 설명된 종속성. 이는 ffi-napi
npm 패키지를 설치하는 데 필요합니다. 이 문서에는 "적절한 C/C++ 컴파일러 툴체인"이 언급되어 있습니다. 이를 위해 gcc
와 g++
설치할 수 있습니다.
그런 다음 다음을 사용하여 종속성을 설치할 수 있습니다.
yarn
그런 다음 아래 설명에 따라 Rancher Desktop을 실행할 수 있습니다. 첫 번째 실행에서 실패할 수 있습니다. 이 경우 이 문제를 해결하는 것으로 알려진 공장 초기화를 수행하고 다시 실행해 보세요.
종속성을 설치한 후에는 다음을 사용하여 Rancher Desktop의 개발 버전을 실행할 수 있습니다.
yarn dev
단위 테스트를 실행하려면 다음 안내를 따르세요.
yarn test
통합 테스트를 실행하려면 다음 안내를 따르세요.
yarn test:e2e
Rancher는 Windows, macOS 또는 Linux의 소스에서 구축할 수 있습니다. 현재 크로스 컴파일은 지원되지 않습니다. 빌드를 실행하려면 다음을 수행하십시오.
yarn build yarn package
빌드 출력은 dist/
로 이동합니다.
Chrome 원격 디버거를 사용하면 Chrome 개발자 도구를 사용하여 Electron 앱을 디버그할 수 있습니다. 이를 사용하여 렌더러 프로세스의 개발자 콘솔에 출력될 수 있는 로그 메시지에 액세스할 수 있습니다. 이는 Rancher Desktop의 프로덕션 빌드에서 추가 디버그 정보를 얻는 데 특히 유용합니다.
원격 디버깅을 활성화하려면 --remote-debugging-port
인수를 사용하여 Rancher Desktop을 시작하세요.
Linux에서는 다음 명령을 사용하여 Rancher Desktop을 시작합니다.
rancher-desktop --remote-debugging-port="8315" --remote-allow-origins=http://localhost:8315
macOS에서는 다음 명령을 사용하여 Rancher Desktop을 시작합니다.
/Applications/Rancher Desktop.app/Contents/MacOS/Rancher Desktop --remote-debugging-port="8315" --remote-allow-origins=http://localhost:8315
Windows에서는 다음 명령을 사용하여 Rancher Desktop을 시작합니다.
cd 'C:Program FilesRancher Desktop'& '.Rancher Desktop.exe' --remote-debugging-port="8315" --remote-allow-origins=http://localhost:8315
Rancher Desktop이 시작된 후 Chrome을 열고 http://localhost:8315/
로 이동합니다. Rancher Desktop 원격 디버깅을 시작하려면 사용 가능한 대상을 선택하세요.
확장을 원격 디버깅하려면 빌드 원격 디버깅과 동일한 프로세스를 따르세요. 그러나 http://localhost:8315/
로 이동하기 전에 확장 프로그램을 로드해야 합니다. Rancher Desktop과 로드된 확장 프로그램이 모두 사용 가능한 대상으로 나열되어야 합니다.
다음 단계는 Linux의 GoLand에서 테스트되었지만 다른 JetBrains IDE에서도 유사한 방식으로 작동할 수 있습니다.
Node.js 플러그인을 설치합니다( File > Settings > Plugins
통해).
"실행/디버그 구성" 대화 상자로 이동합니다( Run > Edit Configurations...
통해).
다음 설정으로 새 Node.js 구성을 추가합니다.
이름: 디버그 구성의 이름(예: rancher desktop
노드 인터프리터: 설치된 노드 인터프리터를 선택하세요(예: /usr/bin/node
노드 매개변수: scripts/ts-wrapper.js scripts/dev.ts
작업 디렉터리: 프로젝트의 작업 디렉터리를 선택하세요(예: ~/src/rancher-desktop
구성 저장
이제 중단점을 설정하고 "'rancher Desktop' 디버그"를 클릭하여 디버깅을 시작할 수 있습니다.
각 커밋은 애플리케이션 번들( .exe
및 .dmg
)이 아티팩트로 업로드되는 GitHub Actions 실행을 트리거합니다. 이는 빌드 시스템에서 빌드한 Rancher Desktop의 최신 빌드를 테스트하려는 경우 유용할 수 있습니다. 완료된 package
작업의 요약 페이지에서 이러한 아티팩트를 다운로드할 수 있습니다.
Windows 및 macOS와 마찬가지로 Rancher Desktop의 Linux 빌드는 각 커밋에서 만들어집니다. 그러나 Linux에서는 GitHub Actions가 프로세스의 일부만 수행합니다. 마지막 부분은 Open Build Service에 의해 수행됩니다.
Rancher Desktop 리포지토리에는 dev
및 stable
두 가지 채널이 있습니다. stable
은 대부분의 사용자가 사용하는 채널입니다. 이는 사용자에게 공식 문서에 추가하도록 지시하는 것과 공식 릴리스에서 생성된 빌드를 포함하는 것입니다. dev
는 여기서 관심 있는 채널입니다. 여기에는 main
브랜치 및 release-*
형식과 일치하는 모든 브랜치에서 이루어진 최신 커밋에서 생성된 빌드가 포함되어 있습니다. 개발 리포지토리를 설치하는 방법을 알아보려면 아래를 참조하세요.
dev
리포지토리를 사용할 때는 dev
리포지토리에서 사용할 수 있는 Rancher Desktop 버전의 형식을 이해하는 것이 중요합니다. 버전의 형식은 다음과 같습니다.
<priority>.<branch>.<commit_time>.<commit>
어디:
priority
는 업데이트 시 release-*
브랜치에서 빌드된 버전보다 main
브랜치에서 빌드된 버전에 우선순위를 부여하기 위해 존재하는 의미 없는 숫자입니다.
branch
지점 이름입니다. 패키지 형식에 따른 제약으로 인해 대시가 제거되었습니다.
commit_time
빌드를 만드는 데 사용된 커밋의 UNIX 타임스탬프입니다.
commit
빌드를 만드는 데 사용된 커밋의 단축된 해시입니다.
.deb
개발 저장소다음 단계에 따라 저장소를 추가할 수 있습니다.
curl -s https://download.opensuse.org/repositories/isv:/Rancher:/dev/deb/Release.key | gpg --dearmor | sudo dd status=none of=/usr/share/keyrings/isv-rancher-dev-archive-keyring.gpg echo 'deb [signed-by=/usr/share/keyrings/isv-rancher-dev-archive-keyring.gpg] https://download.opensuse.org/repositories/isv:/Rancher:/dev/deb/ ./' | sudo dd status=none of=/etc/apt/sources.list.d/isv-rancher-dev.list sudo apt update
다음을 통해 사용 가능한 버전을 확인할 수 있습니다.
apt list -a rancher-desktop
설치하려는 버전을 찾으면 다음을 사용하여 설치할 수 있습니다.
sudo apt install rancher-desktop=<version>
Rancher Desktop 버전이 이미 설치되어 있는 경우에도 작동합니다.
.rpm
개발 저장소다음을 사용하여 저장소를 추가할 수 있습니다.
sudo zypper addrepo https://download.opensuse.org/repositories/isv:/Rancher:/dev/rpm/isv:Rancher:dev.repo sudo zypper refresh
다음을 통해 사용 가능한 버전을 확인할 수 있습니다.
zypper search -s rancher-desktop
마지막으로 다음을 사용하여 원하는 버전을 설치하십시오.
zypper install --oldpackage rancher-desktop=<version>
Rancher Desktop 버전이 이미 설치되어 있는 경우에도 작동합니다.
AppImages용 리포지토리는 없지만 여기에서 최신 개발 AppImage 빌드에 액세스할 수 있습니다.
Rancher Desktop은 제한된 HTTP 기반 API를 지원합니다. API는 pkg/rancher-desktop/assets/specs/command-api.yaml
에 정의되어 있으며 go/src/rdctl
클라이언트 코드에서 API가 호출되는 방법에 대한 예를 볼 수 있습니다.
API는 현재 버전 1이지만 여전히 내부적이고 실험적인 것으로 간주되며 사전 통지 없이 변경될 수 있습니다. 어느 시점에는 API에 필요한 변경 사항이 경고 및 지원 중단 공지를 통해 전달될 것으로 예상됩니다.
기여에 관한 문서를 참조하세요.
추가 개발자 문서는 docs 디렉토리를 참조하세요.