Rancher Desktop é um projeto de código aberto que traz Kubernetes e gerenciamento de contêineres para o desktop. Ele roda em Windows, macOS e Linux. Este README refere-se ao desenvolvimento do Rancher Desktop. Para obter informações orientadas ao usuário sobre o Rancher Desktop, consulte rancherdesktop.io. Para documentação orientada ao usuário, consulte docs.rancherdesktop.io.
Rancher Desktop é um aplicativo Electron escrito principalmente em TypeScript. Ele agrupa uma variedade de outras tecnologias para fornecer uma aplicação coesa. Inclui uma ferramenta de linha de comando, rdctl
, escrita em Go. A maioria das atividades do desenvolvedor, como executar uma construção de desenvolvimento, construir/empacotar o Rancher Desktop, executar testes de unidade e executar testes ponta a ponta, são feitas por meio de scripts yarn
. Existem algumas exceções, como a execução de testes BATS.
Há duas opções para compilar a partir do código-fonte no Windows: com uma configuração de VM de desenvolvimento ou com uma configuração manual do ambiente de desenvolvimento com uma instalação existente do Windows.
Baixe uma máquina virtual de desenvolvimento do Microsoft Windows 10. Todas as etapas a seguir devem ser executadas nessa máquina virtual.
Abra um prompt do PowerShell (pressione a tecla Windows + X
e abra Windows PowerShell
).
Execute o script de configuração automatizada:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser iwr -useb 'https://github.com/rancher-sandbox/rancher-desktop/raw/main/scripts/windows-setup.ps1' | iex
Feche o prompt privilegiado do PowerShell.
Certifique-se de msbuild_path
e msvs_version
estejam configurados corretamente no arquivo .npmrc
. Execute os seguintes comandos para definir essas propriedades:
npm config set msvs_versionnpm config set msbuild_path
Por exemplo, para Visual Studio 2022:
npm config set msvs_version 2022 npm config set msbuild_path "C:Program FilesMicrosoft Visual Studio2022CommunityMSBuildCurrentBinMSBuild.exe"
Se você receber uma mensagem de erro ao tentar executar npm config set...
, execute npm config edit
e adicione linhas como
msvs_version=2022 msbuild_path=C:Program Files (x86)Microsoft Visual Studio2022CommunityMSBuildCurrentBinMSBuild.exe
Não cite os valores à direita do sinal de igual. As aspas não são necessárias e é possível que alguns processadores as tratem como partes literais do caminho e falhem.
Configure git
para funcionar com arquivos originados em Linux e macOS:
git config --global --replace-all core.autocrlf false git config --global --replace-all core.eol lf
Se você descobrir que os testes lint:go
estão falhando misteriosamente, é possível que os finais de linha estejam incorretos.
Agora você pode clonar o repositório e executar yarn
.
Instale o Windows Subsystem for Linux (WSL) em sua máquina. Pule esta etapa se o WSL já estiver instalado.
Abra um prompt do PowerShell (pressione a tecla Windows + X
e abra Windows PowerShell
).
Instale o Scoop via iwr -useb get.scoop.sh | iex
.
Instale 7zip, git, go, mingw, nvm e descompacte via scoop install 7zip git go mingw nvm python unzip
. Verifique a versão do nó com nvm list
. Se o nó v20 não estiver instalado ou definido como a versão atual, instale usando nvm install 20
e defina como atual usando nvm use 20.xx.xx
.
Instale o gerenciador de pacotes do yarn via npm install --global yarn
Instale o Visual Studio 2017 ou superior. No momento em que este livro foi escrito, a versão mais recente estava disponível em [https://visualstudio.microsoft.com/downloads/]; se isso mudou, um bom mecanismo de busca deverá encontrá-lo.
Certifique-se de ter o componente Windows SDK
instalado. Esta documentação do Visual Studio descreve etapas para instalar componentes. A carga de trabalho Desenvolvimento de desktop com C++ também precisa ser selecionada.
Configure git
para funcionar com arquivos originados em Linux e macOS:
git config --global --replace-all core.autocrlf false git config --global --replace-all core.eol lf
Se você descobrir que os testes lint:go
estão falhando misteriosamente, é possível que os finais de linha estejam incorretos. 9. Certifique-se de msbuild_path
e msvs_version
estejam configurados corretamente no arquivo .npmrc
. Execute os seguintes comandos para definir essas propriedades:
npm config set msvs_versionnpm config set msbuild_path
Por exemplo, para Visual Studio 2022:
npm config set msvs_version 2022 npm config set msbuild_path "C:Program FilesMicrosoft Visual Studio2022CommunityMSBuildCurrentBinMSBuild.exe"
Se você receber uma mensagem de erro ao tentar executar npm config set...
, execute npm config edit
e adicione linhas como
msvs_version=2022 msbuild_path=C:Program Files (x86)Microsoft Visual Studio2022CommunityMSBuildCurrentBinMSBuild.exe
Não cite os valores à direita do sinal de igual. Eles não são necessários e é possível que algum processador os trate como partes literais do caminho e depois falhe.
Agora você pode clonar o repositório e executar yarn
.
Instale nvm
para obter o Node.js e o npm:
Consulte https://github.com/nvm-sh/nvm#installing-and-updating e execute o comando curl
ou wget
para instalar o nvm.
Observe que este script adiciona código que trata do nvm
a um arquivo de perfil (como ~/.bash_profile
). Para adicionar acesso ao nvm
a uma sessão de shell atual, você precisará source
esse arquivo.
Atualmente construímos Rancher Desktop com Node 20. Para instalá-lo, execute:
nvm install 20.17
Em seguida, você precisará instalar o gerenciador de pacotes do Yar:
npm install --global yarn
Você também precisará executar brew install go
se não tiver instalado go.
Então você pode instalar dependências com:
yarn
⚠️ Trabalhando em um Mac com chip M1?Você precisará definir a variável de ambiente
M1
antes de instalar dependências e executar qualquer script npm:export M1=1 yarnVocê desejará executar
git clean -fdx
para limpar quaisquer ativos em cache e baixá-los novamente com o arco correto antes de executaryarn
se você instalou dependências anteriormente sem configurarM1
primeiro.
Certifique-se de ter o seguinte instalado:
Node.js v20. Certifique-se de ter todos os pacotes de desenvolvimento instalados. Por exemplo, no openSUSE Leap 15.6 você precisaria instalar nodejs20
e nodejs20-devel
.
fio clássico
Vá para 1.22 ou posterior.
Dependências descritas na instalação dos documentos node-gyp
. Isso é necessário para instalar o pacote ffi-napi
npm. Esses documentos mencionam "um conjunto de ferramentas de compilador C/C++ adequado". Você pode instalar gcc
e g++
para isso.
Então você pode instalar dependências com:
yarn
Você pode então executar o Rancher Desktop conforme descrito abaixo. Pode falhar na primeira execução - se isso acontecer, tente fazer uma redefinição de fábrica e executar novamente, o que é conhecido por resolver esse problema.
Depois de instalar suas dependências, você pode executar uma versão de desenvolvimento do Rancher Desktop com:
yarn dev
Para executar os testes de unidade:
yarn test
Para executar os testes de integração:
yarn test:e2e
O Rancher pode ser construído a partir do código-fonte no Windows, macOS ou Linux. Atualmente, a compilação cruzada não é suportada. Para executar uma compilação, faça:
yarn build yarn package
A saída da compilação vai para dist/
.
O depurador remoto do Chrome permite depurar aplicativos Electron usando as ferramentas para desenvolvedores do Chrome. Você pode usá-lo para acessar mensagens de log que podem ser enviadas para o console do desenvolvedor do processo renderizador. Isso é especialmente útil para obter informações adicionais de depuração em compilações de produção do Rancher Desktop.
Para habilitar a depuração remota, inicie o Rancher Desktop com o argumento --remote-debugging-port
.
No Linux, inicie o Rancher Desktop com o seguinte comando:
rancher-desktop --remote-debugging-port="8315" --remote-allow-origins=http://localhost:8315
No macOS, inicie o Rancher Desktop com o seguinte comando:
/Applications/Rancher Desktop.app/Contents/MacOS/Rancher Desktop --remote-debugging-port="8315" --remote-allow-origins=http://localhost:8315
No Windows, inicie o Rancher Desktop com o seguinte comando:
cd 'C:Arquivos de ProgramasRancher Desktop'& '.Rancher Desktop.exe' --remote-debugging-port="8315" --remote-allow-origins=http://localhost:8315
Depois que o Rancher Desktop for iniciado, abra o Chrome e navegue até http://localhost:8315/
. Selecione o destino disponível para iniciar a depuração remota do Rancher Desktop.
Para depurar remotamente uma extensão, siga o mesmo processo da depuração remota de um build. No entanto, você precisará carregar uma extensão antes de navegar para http://localhost:8315/
. Tanto o Rancher Desktop quanto a extensão carregada devem ser listados como alvos disponíveis.
As etapas a seguir foram testadas com GoLand no Linux, mas podem funcionar para outros IDEs JetBrains de maneira semelhante.
Instale o plugin Node.js (via File > Settings > Plugins
)
Vá para a caixa de diálogo "Configurações de execução/depuração" (via Run > Edit Configurations...
)
Adicione uma nova configuração do Node.js com as seguintes configurações:
Nome: um nome para a configuração de depuração, por exemplo, rancher desktop
Intérprete de nó: escolha seu interpretador de nó instalado, por exemplo, /usr/bin/node
Parâmetros do nó: scripts/ts-wrapper.js scripts/dev.ts
Diretório de trabalho: escolha o diretório de trabalho do seu projeto, por exemplo, ~/src/rancher-desktop
Salve a configuração
Agora você pode definir um ponto de interrupção e clicar em "Depurar 'rancher desktop'" para iniciar a depuração
Cada confirmação aciona uma execução do GitHub Actions que resulta no upload de pacotes de aplicativos ( .exe
se .dmg
s) como artefatos. Isso pode ser útil se você quiser testar a versão mais recente do Rancher Desktop construída pelo sistema de compilação. É possível fazer download desses artefatos na página Resumo de ações package
concluídas.
Semelhante ao Windows e ao macOS, as compilações Linux do Rancher Desktop são feitas a partir de cada commit. No entanto, no Linux, apenas parte do processo é feita pelo GitHub Actions. A parte final é feita pelo Open Build Service.
Existem dois canais dos repositórios do Rancher Desktop: dev
e stable
. stable
é o canal que a maioria dos usuários usa. É aquele que os usuários são instruídos a adicionar na documentação oficial e aquele que contém compilações criadas a partir de lançamentos oficiais. dev
é o canal que nos interessa aqui: ele contém compilações criadas a partir do último commit feito no branch main
e em qualquer branch que corresponda ao formato release-*
. Para saber como instalar os repositórios de desenvolvimento, veja abaixo.
Ao usar os repositórios dev
, é importante entender o formato das versões do Rancher Desktop disponíveis nos repositórios dev
. As versões estão no formato:
. . .
onde:
priority
é um número sem sentido que existe para dar prioridade às versões criadas a partir da ramificação main
sobre as versões criadas a partir das ramificações release-*
durante a atualização.
branch
é o nome da filial; os traços são removidos devido a restrições impostas pelos formatos de pacote.
commit_time
é o carimbo de data/hora UNIX do commit usado para fazer a compilação.
commit
é o hash abreviado do commit usado para fazer a compilação.
.deb
Você pode adicionar o repositório com as seguintes etapas:
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
Você pode ver as versões disponíveis com:
apt list -a rancher-desktop
Depois de encontrar a versão que deseja instalar, você pode instalá-la com:
sudo apt install rancher-desktop=
Isso funciona mesmo se você já tiver uma versão do Rancher Desktop instalada.
.rpm
Você pode adicionar o repositório com:
sudo zypper addrepo https://download.opensuse.org/repositories/isv:/Rancher:/dev/rpm/isv:Rancher:dev.repo sudo zypper refresh
Você pode ver as versões disponíveis com:
zypper search -s rancher-desktop
Por fim, instale a versão desejada com:
zypper install --oldpackage rancher-desktop=
Isso funciona mesmo se você já tiver uma versão do Rancher Desktop instalada.
Não há repositórios para AppImages, mas você pode acessar as compilações de desenvolvimento mais recentes do AppImage aqui.
Rancher Desktop oferece suporte a uma API limitada baseada em HTTP. A API é definida em pkg/rancher-desktop/assets/specs/command-api.yaml
e você pode ver exemplos de como ela é invocada no código do cliente em go/src/rdctl
.
A API está atualmente na versão 1, mas ainda é considerada interna e experimental, e está sujeita a alterações sem aviso prévio. Em algum momento, esperamos que as alterações necessárias na API passem por um aviso e um aviso de descontinuação.
Por favor, consulte o documento sobre como contribuir.
Consulte o diretório docs para obter mais documentação do desenvolvedor.