Rancher Desktop es un proyecto de código abierto que lleva Kubernetes y la gestión de contenedores al escritorio. Se ejecuta en Windows, macOS y Linux. Este README pertenece al desarrollo de Rancher Desktop. Para obtener información orientada al usuario sobre Rancher Desktop, consulte rancherdesktop.io. Para obtener documentación orientada al usuario, consulte docs.rancherdesktop.io.
Rancher Desktop es una aplicación de Electron escrita principalmente en TypeScript. Combina una variedad de otras tecnologías para proporcionar una aplicación coherente. Incluye una herramienta de línea de comandos, rdctl
, que está escrita en Go. La mayoría de las actividades de los desarrolladores, como ejecutar una compilación de desarrollo, crear/empaquetar Rancher Desktop, ejecutar pruebas unitarias y ejecutar pruebas de un extremo a otro, se realizan a través de scripts yarn
. Existen algunas excepciones, como la ejecución de pruebas BATS.
Hay dos opciones para compilar desde el código fuente en Windows: con una configuración de VM de desarrollo o una configuración manual del entorno de desarrollo con una instalación de Windows existente.
Descargue una máquina virtual de desarrollo de Microsoft Windows 10. Todos los pasos siguientes deben realizarse en esa máquina virtual.
Abra un mensaje de PowerShell (presione la tecla Windows + X
y abra Windows PowerShell
).
Ejecute el script de configuración automatizada:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser iwr -useb 'https://github.com/rancher-sandbox/rancher-desktop/raw/main/scripts/windows-setup.ps1' | iex
Cierre el mensaje privilegiado de PowerShell.
Asegúrese de que msbuild_path
y msvs_version
estén configurados correctamente en el archivo .npmrc
. Ejecute los siguientes comandos para establecer estas propiedades:
npm config set msvs_versionnpm config set msbuild_path
Por ejemplo para Visual Studio 2022:
npm config set msvs_version 2022 npm config set msbuild_path "C:Program FilesMicrosoft Visual Studio2022CommunityMSBuildCurrentBinMSBuild.exe"
Si recibe un mensaje de error al intentar ejecutar npm config set...
, ejecute npm config edit
y luego agregue líneas como
msvs_version=2022 msbuild_path=C:Program Files (x86)Microsoft Visual Studio2022CommunityMSBuildCurrentBinMSBuild.exe
No cite los valores al lado derecho del signo igual. Las comillas no son necesarias y es posible que algunos procesadores las traten como partes literales de la ruta y luego fallen.
Configure git
para que funcione con archivos originados en Linux y Macos:
git config --global --replace-all core.autocrlf false git config --global --replace-all core.eol lf
Si encuentra que las pruebas lint:go
fallan misteriosamente, es posible que los finales de línea sean incorrectos.
Ahora puedes clonar el repositorio y ejecutar yarn
.
Instale el Subsistema de Windows para Linux (WSL) en su máquina. Omita este paso si WSL ya está instalado.
Abra un mensaje de PowerShell (presione la tecla Windows + X
y abra Windows PowerShell
).
Instale Scoop mediante iwr -useb get.scoop.sh | iex
.
Instale 7zip, git, go, mingw, nvm y descomprímalo mediante scoop install 7zip git go mingw nvm python unzip
. Verifique la versión del nodo con nvm list
. Si el nodo v20 no está instalado o configurado como la versión actual, instálelo usando nvm install 20
y configúrelo como actual usando nvm use 20.xx.xx
Instale el administrador de paquetes de hilo a través de npm install --global yarn
Instale Visual Studio 2017 o superior. Al momento de escribir este artículo, la última versión está disponible en [https://visualstudio.microsoft.com/downloads/]; si eso ha cambiado, un buen motor de búsqueda debería encontrarlo.
Asegúrese de tener instalado el componente Windows SDK
. Estos documentos de Visual Studio describen los pasos para instalar componentes. También es necesario seleccionar la carga de trabajo Desarrollo de escritorio con C++.
Configure git
para que funcione con archivos originados en Linux y Macos:
git config --global --replace-all core.autocrlf false git config --global --replace-all core.eol lf
Si encuentra que las pruebas lint:go
fallan misteriosamente, es posible que los finales de línea sean incorrectos. 9. Asegúrese de que msbuild_path
y msvs_version
estén configurados correctamente en el archivo .npmrc
. Ejecute los siguientes comandos para establecer estas propiedades:
npm config set msvs_versionnpm config set msbuild_path
Por ejemplo para Visual Studio 2022:
npm config set msvs_version 2022 npm config set msbuild_path "C:Program FilesMicrosoft Visual Studio2022CommunityMSBuildCurrentBinMSBuild.exe"
Si recibe un mensaje de error al intentar ejecutar npm config set...
, ejecute npm config edit
y luego agregue líneas como
msvs_version=2022 msbuild_path=C:Program Files (x86)Microsoft Visual Studio2022CommunityMSBuildCurrentBinMSBuild.exe
No cite los valores al lado derecho del signo igual. No son necesarios y es posible que algún procesador los trate como partes literales de la ruta y luego falle.
Ahora puedes clonar el repositorio y ejecutar yarn
.
Instale nvm
para obtener Node.js y npm:
Consulte https://github.com/nvm-sh/nvm#installing-and-updating y ejecute el comando curl
o wget
para instalar nvm.
Tenga en cuenta que este script agrega código relacionado con nvm
a un archivo de perfil (como ~/.bash_profile
). Para agregar acceso a nvm
a una sesión de shell actual, necesitará source
ese archivo.
Actualmente construimos Rancher Desktop con Node 20. Para instalarlo, ejecute:
nvm install 20.17
A continuación, necesitarás instalar el administrador de paquetes de hilo:
npm install --global yarn
También necesitarás ejecutar brew install go
si no lo has instalado.
Luego puedes instalar dependencias con:
yarn
⚠️ ¿Trabajando en una Mac con un chip M1?Deberá configurar la variable de entorno
M1
antes de instalar dependencias y ejecutar cualquier script npm:export M1=1 yarnQuerrá ejecutar
git clean -fdx
para limpiar los activos almacenados en caché y volver a descargarlos con el arco correcto antes de ejecutaryarn
si instaló dependencias previamente sin configurarM1
primero.
Asegúrese de tener instalado lo siguiente:
Nodo.js v20. Asegúrese de tener instalados todos los paquetes de desarrollo. Por ejemplo, en openSUSE Leap 15.6 necesitaría instalar nodejs20
y nodejs20-devel
.
hilo clásico
Vaya a 1.22 o posterior.
Dependencias descritas en la instalación de documentos node-gyp
. Esto es necesario para instalar el paquete ffi-napi
npm. Estos documentos mencionan "una cadena de herramientas de compilación C/C++ adecuada". Puedes instalar gcc
y g++
para esto.
Luego puedes instalar dependencias con:
yarn
Luego puede ejecutar Rancher Desktop como se describe a continuación. Es posible que falle en la primera ejecución; si esto sucede, intente realizar un restablecimiento de fábrica y volver a ejecutarlo, lo que se sabe que resuelve este problema.
Una vez que haya instalado sus dependencias, puede ejecutar una versión de desarrollo de Rancher Desktop con:
yarn dev
Para ejecutar las pruebas unitarias:
yarn test
Para ejecutar las pruebas de integración:
yarn test:e2e
Rancher se puede compilar desde el código fuente en Windows, macOS o Linux. Actualmente no se admite la compilación cruzada. Para ejecutar una compilación, haga lo siguiente:
yarn build yarn package
El resultado de la compilación va a dist/
.
El depurador remoto de Chrome le permite depurar aplicaciones de Electron utilizando las herramientas para desarrolladores de Chrome. Puede usarlo para acceder a los mensajes de registro que podrían enviarse a la consola de desarrollador del proceso de renderizado. Esto es especialmente útil para obtener información de depuración adicional en versiones de producción de Rancher Desktop.
Para habilitar la depuración remota, inicie Rancher Desktop con el argumento --remote-debugging-port
.
En Linux, inicie Rancher Desktop con el siguiente comando:
rancher-desktop --remote-debugging-port="8315" --remote-allow-origins=http://localhost:8315
En macOS, inicie Rancher Desktop con el siguiente comando:
/Applications/Rancher Desktop.app/Contents/MacOS/Rancher Desktop --remote-debugging-port="8315" --remote-allow-origins=http://localhost:8315
En Windows, inicie Rancher Desktop con el siguiente comando:
cd 'C:Archivos de programaRancher Desktop'& '.Rancher Desktop.exe' --remote-debugging-port="8315" --remote-allow-origins=http://localhost:8315
Después de que se inicie Rancher Desktop, abra Chrome y navegue hasta http://localhost:8315/
. Seleccione el destino disponible para iniciar la depuración remota de Rancher Desktop.
Para depurar remotamente una extensión, siga el mismo proceso que para la depuración remota de una compilación. Sin embargo, deberá cargar una extensión antes de navegar a http://localhost:8315/
. Tanto Rancher Desktop como la extensión cargada deberían aparecer como objetivos disponibles.
Los siguientes pasos se han probado con GoLand en Linux, pero podrían funcionar para otros IDE de JetBrains de manera similar.
Instale el complemento Node.js (a través de File > Settings > Plugins
)
Vaya al cuadro de diálogo "Ejecutar/depurar configuraciones" (a través de Run > Edit Configurations...
)
Agregue una nueva configuración de Node.js con las siguientes configuraciones:
Nombre: un nombre para la configuración de depuración, por ejemplo, rancher desktop
Intérprete de nodo: elija su intérprete de nodo instalado, por ejemplo, /usr/bin/node
Parámetros del nodo: scripts/ts-wrapper.js scripts/dev.ts
Directorio de trabajo: elija el directorio de trabajo de su proyecto, por ejemplo ~/src/rancher-desktop
Guardar la configuración
Ahora puede establecer un punto de interrupción y hacer clic en "Depurar 'escritorio ranchero'" para iniciar la depuración.
Cada confirmación desencadena una ejecución de GitHub Actions que da como resultado que los paquetes de aplicaciones ( .exe
sy .dmg
) se carguen como artefactos. Esto puede resultar útil si desea probar la última versión de Rancher Desktop tal como la creó el sistema de compilación. Puede descargar estos artefactos desde la página Resumen de acciones package
completadas.
Al igual que en Windows y macOS, las compilaciones de Rancher Desktop para Linux se crean a partir de cada confirmación. Sin embargo, en Linux, GitHub Actions solo realiza una parte del proceso. La parte final la realiza Open Build Service.
Hay dos canales de los repositorios de Rancher Desktop: dev
y stable
. stable
es el canal que utilizan la mayoría de los usuarios. Es el que los usuarios deben agregar en la documentación oficial y el que contiene compilaciones creadas a partir de lanzamientos oficiales. dev
es el canal que nos interesa aquí: contiene compilaciones creadas a partir de la última confirmación realizada en la rama main
y en cualquier rama que coincida con el formato release-*
. Para aprender cómo instalar los repositorios de desarrollo, consulte a continuación.
Al utilizar los repositorios dev
, es importante comprender el formato de las versiones de Rancher Desktop disponibles en los repositorios dev
. Las versiones están en el formato:
. . .
dónde:
priority
es un número sin sentido que existe para dar prioridad a las versiones creadas a partir de la rama main
sobre las versiones creadas a partir de las ramas release-*
al actualizar.
branch
es el nombre de la rama; Los guiones se eliminan debido a las restricciones impuestas por los formatos de los paquetes.
commit_time
es la marca de tiempo UNIX de la confirmación utilizada para realizar la compilación.
commit
es el hash abreviado del commit utilizado para realizar la compilación.
.deb
Puede agregar el repositorio con los siguientes pasos:
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
Puedes ver las versiones disponibles con:
apt list -a rancher-desktop
Una vez que encuentre la versión que desea instalar, puede instalarla con:
sudo apt install rancher-desktop=
Esto funciona incluso si ya tiene instalada una versión de Rancher Desktop.
.rpm
Puedes agregar el repositorio con:
sudo zypper addrepo https://download.opensuse.org/repositories/isv:/Rancher:/dev/rpm/isv:Rancher:dev.repo sudo zypper refresh
Puedes ver las versiones disponibles con:
zypper search -s rancher-desktop
Finalmente, instala la versión que desees con:
zypper install --oldpackage rancher-desktop=
Esto funciona incluso si ya tiene instalada una versión de Rancher Desktop.
No hay repositorios para AppImages, pero puede acceder a las últimas versiones de desarrollo de AppImage aquí.
Rancher Desktop admite una API limitada basada en HTTP. La API se define en pkg/rancher-desktop/assets/specs/command-api.yaml
y puede ver ejemplos de cómo se invoca en el código del cliente en go/src/rdctl
.
La API se encuentra actualmente en la versión 1, pero aún se considera interna y experimental, y está sujeta a cambios sin previo aviso. En algún momento esperamos que los cambios necesarios en la API pasen por un aviso de advertencia y obsolescencia.
Consulte el documento sobre cómo contribuir.
Consulte el directorio de documentos para obtener más documentación para desarrolladores.