Rancher Desktop は、Kubernetes とコンテナ管理をデスクトップにもたらすオープンソース プロジェクトです。 Windows、macOS、Linux 上で動作します。この README は Rancher Desktop の開発に関するものです。 Rancher Desktop に関するユーザー向けの情報については、rancherdesktop.io を参照してください。ユーザー向けのドキュメントについては、docs.rancherdesktop.io を参照してください。
Rancher Desktop は、主に TypeScript で書かれた Electron アプリケーションです。他のさまざまなテクノロジーをバンドルして、1 つのまとまりのあるアプリケーションを提供します。これには、Go で書かれたコマンド ライン ツールrdctl
含まれています。開発ビルドの実行、Rancher Desktop の構築/パッケージ化、単体テストの実行、エンドツーエンド テストの実行など、ほとんどの開発者のアクティビティは、 yarn
スクリプトを通じて行われます。 BATS テストの実行など、いくつかの例外が存在します。
Windows 上でソースからビルドするには、開発 VM セットアップを使用するオプションと、既存の Windows インストールを使用した手動開発環境セットアップを使用するオプションの 2 つがあります。
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_versionnpm config set msbuild_path
たとえば、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
実行できるようになりました。
Windows Subsystem for Linux (WSL) をマシンにインストールします。 WSL がすでにインストールされている場合は、この手順をスキップしてください。
PowerShell プロンプトを開きます (Windows キー + X
を押してWindows PowerShell
開きます)。
iwr -useb get.scoop.sh | iex
経由で Scoop をインストールします。 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_versionnpm config set msbuild_path
たとえば、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
実行できるようになりました。
nvm
をインストールして Node.js と npm を取得します。
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
設定せずに依存関係をインストールした場合は、yarn
実行する前にgit clean -fdx
実行してキャッシュされたアセットをすべて削除し、正しいアーチで再ダウンロードする必要があります。
以下がインストールされていることを確認してください。
Node.js v20。開発パッケージがインストールされていることを確認してください。たとえば、openSUSE Leap 15.6 では、 nodejs20
とnodejs20-devel
インストールする必要があります。
糸クラシック
1.22 以降を使用してください。
依存関係については、 node-gyp
docs のインストールで説明されています。これは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 Developer Tools を使用して 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
設定を保存する
ブレークポイントを設定し、「Debug 'rancherdesktop'」をクリックしてデバッグを開始できるようになりました。
各コミットによって GitHub Actions の実行がトリガーされ、その結果、アプリケーション バンドル ( .exe
および.dmg
) がアーティファクトとしてアップロードされます。これは、ビルド システムによってビルドされた Rancher Desktop の最新ビルドをテストする場合に便利です。これらのアーティファクトは、完了したpackage
アクションの [概要] ページからダウンロードできます。
Windows や macOS と同様に、Rancher Desktop の Linux ビルドは各コミットから作成されます。ただし、Linux では、プロセスの一部のみが GitHub Actions によって実行されます。最後の部分は Open Build Service によって実行されます。
Rancher Desktop リポジトリには、 dev
とstable
2 つのチャネルがあります。 stable
ほとんどのユーザーが使用するチャネルです。これは、ユーザーが公式ドキュメントに追加するように指示されているものであり、公式リリースから作成されたビルドが含まれているものです。 dev
、ここで関心のあるチャネルです。これには、 main
ブランチと、 release-*
形式に一致するすべてのブランチで行われた最新のコミットから作成されたビルドが含まれています。開発リポジトリのインストール方法については、以下を参照してください。
dev
リポジトリを使用する場合、 dev
リポジトリから入手できる Rancher Desktop のバージョンの形式を理解することが重要です。バージョンは次の形式です。
. . .
どこ:
priority
は、更新時にmain
ブランチから構築されたバージョンをrelease-*
ブランチから構築されたバージョンよりも優先するために存在する無意味な数値です。
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=
これは、すでに 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=
これは、すでに Rancher Desktop のバージョンがインストールされている場合でも機能します。
AppImage のリポジトリはありませんが、ここから最新の開発 AppImage ビルドにアクセスできます。
Rancher Desktop は、限定された HTTP ベースの API をサポートします。 API はpkg/rancher-desktop/assets/specs/command-api.yaml
で定義されており、クライアント コードでの API の呼び出し方法の例はgo/src/rdctl
で確認できます。
API は現在バージョン 1 ですが、まだ内部的かつ実験的なものとみなされており、事前の通知なく変更される可能性があります。ある時点で、API に必要な変更が警告と非推奨の通知によって行われることが予想されます。
寄付についてはドキュメントをご覧ください。
開発者向けドキュメントの詳細については、docs ディレクトリを参照してください。