Rancher Desktop est un projet open source qui apporte Kubernetes et la gestion des conteneurs au bureau. Il fonctionne sous Windows, macOS et Linux. Ce README concerne le développement de Rancher Desktop. Pour des informations destinées aux utilisateurs sur Rancher Desktop, veuillez consulter rancherdesktop.io. Pour une documentation orientée utilisateur, veuillez consulter docs.rancherdesktop.io.
Rancher Desktop est une application Electron principalement écrite en TypeScript. Il regroupe une variété d’autres technologies afin de fournir une application cohérente. Il comprend un outil de ligne de commande, rdctl
, écrit en Go. La plupart des activités des développeurs, telles que l'exécution d'une version de développement, la création/le packaging de Rancher Desktop, l'exécution de tests unitaires et l'exécution de tests de bout en bout, sont effectuées via des scripts yarn
. Certaines exceptions existent, comme l'exécution de tests BATS.
Il existe deux options pour créer à partir des sources sous Windows : avec une configuration de machine virtuelle de développement ou une configuration manuelle de l'environnement de développement avec une installation Windows existante.
Téléchargez une machine virtuelle de développement Microsoft Windows 10. Toutes les étapes suivantes doivent être effectuées dans cette machine virtuelle.
Ouvrez une invite PowerShell (appuyez sur Windows Key + X
et ouvrez Windows PowerShell
).
Exécutez le script de configuration automatisé :
Set-ExecutionPolicy RemoteSigned-Scope CurrentUser iwr -useb 'https://github.com/rancher-sandbox/rancher-desktop/raw/main/scripts/windows-setup.ps1' | iex
Fermez l’invite PowerShell privilégiée.
Assurez-vous que msbuild_path
et msvs_version
sont correctement configurés dans le fichier .npmrc
. Exécutez les commandes suivantes pour définir ces propriétés :
npm config set msvs_versionnpm config set msbuild_path
Par exemple pour Visual Studio 2022 :
npm config set msvs_version 2022 npm config set msbuild_path "C:Program FilesMicrosoft Visual Studio2022CommunityMSBuildCurrentBinMSBuild.exe"
Si vous recevez un message d'erreur lorsque vous essayez d'exécuter npm config set...
, exécutez npm config edit
, puis ajoutez des lignes telles que
msvs_version=2022 msbuild_path=C:Program Files (x86)Microsoft Visual Studio2022CommunityMSBuildCurrentBinMSBuild.exe
Ne citez pas les valeurs à droite du signe égal. Les guillemets ne sont pas nécessaires et il est possible que certains processeurs les traitent comme des parties littérales du chemin, puis échouent.
Configurez git
pour qu'il fonctionne avec les fichiers d'origine Linux et Macos :
git config --global --replace-all core.autocrlf false git config --global --replace-all core.eol lf
Si vous constatez que les tests lint:go
échouent mystérieusement, il est possible que les fins de ligne soient incorrectes.
Vous pouvez maintenant cloner le référentiel et exécuter yarn
.
Installez le sous-système Windows pour Linux (WSL) sur votre ordinateur. Ignorez cette étape si WSL est déjà installé.
Ouvrez une invite PowerShell (appuyez sur Windows Key + X
et ouvrez Windows PowerShell
).
Installez Scoop via iwr -useb get.scoop.sh | iex
.
Installez 7zip, git, go, mingw, nvm et décompressez via scoop install 7zip git go mingw nvm python unzip
. Vérifiez la version du nœud avec nvm list
. Si le nœud v20 n'est pas installé ou défini comme version actuelle, installez-le à l'aide de nvm install 20
et définissez-le comme version actuelle à l'aide de nvm use 20.xx.xx
.
Installez le gestionnaire de paquets de fils via npm install --global yarn
Installez Visual Studio 2017 ou version ultérieure. Au moment d'écrire ces lignes, la dernière version est disponible sur [https://visualstudio.microsoft.com/downloads/] ; si cela change, un bon moteur de recherche devrait le trouver.
Assurez-vous que le composant Windows SDK
est installé. Cette documentation Visual Studio décrit les étapes d'installation des composants. Le développement de bureau avec la charge de travail C++ doit également être sélectionné.
Configurez git
pour qu'il fonctionne avec les fichiers d'origine Linux et Macos :
git config --global --replace-all core.autocrlf false git config --global --replace-all core.eol lf
Si vous constatez que les tests lint:go
échouent mystérieusement, il est possible que les fins de ligne soient incorrectes. 9. Assurez-vous que msbuild_path
et msvs_version
sont correctement configurés dans le fichier .npmrc
. Exécutez les commandes suivantes pour définir ces propriétés :
npm config set msvs_versionnpm config set msbuild_path
Par exemple pour Visual Studio 2022 :
npm config set msvs_version 2022 npm config set msbuild_path "C:Program FilesMicrosoft Visual Studio2022CommunityMSBuildCurrentBinMSBuild.exe"
Si vous recevez un message d'erreur lorsque vous essayez d'exécuter npm config set...
, exécutez npm config edit
, puis ajoutez des lignes telles que
msvs_version=2022 msbuild_path=C:Program Files (x86)Microsoft Visual Studio2022CommunityMSBuildCurrentBinMSBuild.exe
Ne citez pas les valeurs à droite du signe égal. Ils ne sont pas nécessaires et il est possible qu'un processeur les traite comme des parties littérales du chemin, puis échoue.
Vous pouvez maintenant cloner le référentiel et exécuter yarn
.
Installez nvm
pour obtenir Node.js et npm :
Voir https://github.com/nvm-sh/nvm#installing-and-updating et exécutez la commande curl
ou wget
pour installer nvm.
Notez que ce script ajoute du code traitant de nvm
à un fichier de profil (comme ~/.bash_profile
). Pour ajouter l'accès à nvm
à une session shell en cours, vous devrez source
ce fichier.
Actuellement, nous construisons Rancher Desktop avec Node 20. Pour l'installer, exécutez :
nvm install 20.17
Ensuite, vous devrez installer le gestionnaire de packages de fil :
npm install --global yarn
Vous devrez également exécuter brew install go
si vous n'avez pas installé Go.
Ensuite, vous pouvez installer des dépendances avec :
yarn
⚠️ Vous travaillez sur un Mac avec une puce M1 ?Vous devrez définir la variable d'environnement
M1
avant d'installer les dépendances et d'exécuter des scripts npm :export M1=1 yarnVous souhaiterez exécuter
git clean -fdx
pour nettoyer tous les actifs mis en cache et les retélécharger avec l'arch correct avant d'exécuteryarn
si vous avez déjà installé des dépendances sans définirM1
au préalable.
Assurez-vous que les éléments suivants sont installés :
Node.js v20. Assurez-vous que tous les packages de développement sont installés. Par exemple, sur openSUSE Leap 15.6, vous devrez installer nodejs20
et nodejs20-devel
.
fil classique
Passez à la version 1.22 ou ultérieure.
Dépendances décrites dans l'installation de la documentation node-gyp
. Ceci est requis pour installer le package ffi-napi
npm. Ces documents mentionnent "une chaîne d'outils de compilateur C/C++ appropriée". Vous pouvez installer gcc
et g++
pour cela.
Ensuite, vous pouvez installer des dépendances avec :
yarn
Vous pouvez ensuite exécuter Rancher Desktop comme décrit ci-dessous. Il peut échouer lors de la première exécution. Si cela se produit, essayez d'effectuer une réinitialisation d'usine et une nouvelle exécution, ce qui est connu pour résoudre ce problème.
Une fois vos dépendances installées, vous pouvez exécuter une version de développement de Rancher Desktop avec :
yarn dev
Pour exécuter les tests unitaires :
yarn test
Pour exécuter les tests d'intégration :
yarn test:e2e
Rancher peut être construit à partir des sources sous Windows, macOS ou Linux. La compilation croisée n'est actuellement pas prise en charge. Pour exécuter une build, faites :
yarn build yarn package
La sortie de construction va à dist/
.
Le débogueur distant Chrome vous permet de déboguer les applications Electron à l'aide des outils de développement Chrome. Vous pouvez l'utiliser pour accéder aux messages de journal susceptibles d'être envoyés à la console développeur du processus de rendu. Ceci est particulièrement utile pour obtenir des informations de débogage supplémentaires dans les versions de production de Rancher Desktop.
Pour activer le débogage à distance, démarrez Rancher Desktop avec l'argument --remote-debugging-port
.
Sous Linux, démarrez Rancher Desktop avec la commande suivante :
rancher-desktop --remote-debugging-port="8315" --remote-allow-origins=http://localhost:8315
Sur macOS, démarrez Rancher Desktop avec la commande suivante :
/Applications/Rancher Desktop.app/Contents/MacOS/Rancher Desktop --remote-debugging-port="8315" --remote-allow-origins=http://localhost:8315
Sous Windows, démarrez Rancher Desktop avec la commande suivante :
cd 'C:Program FilesRancher Desktop'& '.Rancher Desktop.exe' --remote-debugging-port="8315" --remote-allow-origins=http://localhost:8315
Après le démarrage de Rancher Desktop, ouvrez Chrome et accédez à http://localhost:8315/
. Sélectionnez la cible disponible pour démarrer le débogage à distance de Rancher Desktop.
Pour déboguer à distance une extension, suivez le même processus que pour le débogage à distance d’une build. Cependant, vous devrez charger une extension avant d'accéder à http://localhost:8315/
. Rancher Desktop et l'extension chargée doivent être répertoriés comme cibles disponibles.
Les étapes suivantes ont été testées avec GoLand sous Linux mais peuvent fonctionner de la même manière pour d'autres IDE JetBrains.
Installez le plugin Node.js (via File > Settings > Plugins
)
Accédez à la boîte de dialogue "Exécuter/Déboguer les configurations" (via Run > Edit Configurations...
)
Ajoutez une nouvelle configuration Node.js avec les paramètres suivants :
Nom : un nom pour la configuration de débogage, par exemple rancher desktop
Interpréteur de nœud : choisissez votre interpréteur de nœud installé, par exemple /usr/bin/node
Paramètres du nœud : scripts/ts-wrapper.js scripts/dev.ts
Répertoire de travail : choisissez le répertoire de travail de votre projet, par exemple ~/src/rancher-desktop
Enregistrez la configuration
Vous pouvez maintenant définir un point d'arrêt et cliquer sur "Debug 'rancher desktop'" pour démarrer le débogage.
Chaque validation déclenche une exécution d'actions GitHub qui entraîne le téléchargement de bundles d'applications ( .exe
et .dmg
) en tant qu'artefacts. Cela peut être utile si vous souhaitez tester la dernière version de Rancher Desktop telle que construite par le système de build. Vous pouvez télécharger ces artefacts à partir de la page Récapitulatif des actions package
terminées.
Semblable à Windows et macOS, les versions Linux de Rancher Desktop sont créées à partir de chaque validation. Cependant sous Linux, seule une partie du processus est effectuée par GitHub Actions. La dernière partie est réalisée par Open Build Service.
Il existe deux canaux de référentiels Rancher Desktop : dev
et stable
. stable
est le canal que la plupart des utilisateurs utilisent. C'est celui que les utilisateurs sont invités à ajouter dans la documentation officielle et celui qui contient des versions créées à partir des versions officielles. dev
est le canal qui nous intéresse ici : il contient les builds créés à partir du dernier commit effectué sur la branche main
, et sur toutes les branches qui correspondent au format release-*
. Pour savoir comment installer les référentiels de développement, voir ci-dessous.
Lors de l'utilisation des référentiels dev
, il est important de comprendre le format des versions de Rancher Desktop disponibles à partir des référentiels dev
. Les versions sont au format :
. . .
où:
priority
est un nombre dénué de sens qui existe pour donner aux versions construites à partir de la branche main
la priorité sur les versions construites à partir des branches release-*
lors de la mise à jour.
branch
est le nom de la branche ; les tirets sont supprimés en raison des contraintes imposées par les formats de package.
commit_time
est l'horodatage UNIX du commit utilisé pour réaliser la build.
commit
est le hachage raccourci du commit utilisé pour réaliser la build.
.deb
Vous pouvez ajouter le dépôt en procédant comme suit :
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
Vous pouvez voir les versions disponibles avec :
apt list -a rancher-desktop
Une fois que vous avez trouvé la version que vous souhaitez installer, vous pouvez l'installer avec :
sudo apt install rancher-desktop=
Cela fonctionne même si une version de Rancher Desktop est déjà installée.
.rpm
Vous pouvez ajouter le dépôt avec :
sudo zypper addrepo https://download.opensuse.org/repositories/isv:/Rancher:/dev/rpm/isv:Rancher:dev.repo sudo zypper refresh
Vous pouvez voir les versions disponibles avec :
zypper search -s rancher-desktop
Enfin, installez la version souhaitée avec :
zypper install --oldpackage rancher-desktop=
Cela fonctionne même si vous avez déjà installé une version de Rancher Desktop.
Il n'existe pas de référentiels pour AppImages, mais vous pouvez accéder aux dernières versions de développement d'AppImage ici.
Rancher Desktop prend en charge une API limitée basée sur HTTP. L'API est définie dans pkg/rancher-desktop/assets/specs/command-api.yaml
, et vous pouvez voir des exemples de la façon dont elle est invoquée dans le code client sur go/src/rdctl
.
L'API est actuellement en version 1, mais est toujours considérée comme interne et expérimentale et est susceptible d'être modifiée sans préavis. À un moment donné, nous nous attendons à ce que les modifications nécessaires apportées à l'API fassent l'objet d'un avertissement et d'un avis de dépréciation.
Veuillez consulter le document sur la contribution.
Veuillez consulter le répertoire docs pour plus de documentation pour les développeurs.