Rancher Desktop — это проект с открытым исходным кодом, который переносит Kubernetes и управление контейнерами на рабочий стол. Он работает на Windows, macOS и Linux. Этот файл README относится к разработке Rancher Desktop. Для получения ориентированной на пользователя информации о Rancher Desktop посетите сайт rancherdesktop.io. Документацию, ориентированную на пользователя, можно найти на docs.rancherdesktop.io.
Rancher Desktop — это приложение Electron, написанное в основном на TypeScript. Он объединяет множество других технологий, чтобы создать одно связное приложение. Он включает в себя инструмент командной строки rdctl
, написанный на Go. Большинство действий разработчика, таких как запуск сборки для разработки, сборка/упаковка Rancher Desktop, выполнение модульных и сквозных тестов, выполняются с помощью сценариев yarn
. Существуют некоторые исключения, например, проведение тестов BATS.
Существует два варианта сборки из исходного кода в Windows: с помощью установки виртуальной машины разработки или ручной настройки среды разработки с использованием существующей установки Windows.
Загрузите виртуальную машину разработки Microsoft Windows 10. Все следующие шаги следует выполнять на этой виртуальной машине.
Откройте приглашение PowerShell (нажмите Windows Key + X
и откройте Windows PowerShell
).
Запустите скрипт автоматической установки:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser iwr -useb 'https://github.com/rancher-sandbox/rancher-desktop/raw/main/scripts/windows-setup.ps1' | IEX
Закройте привилегированную командную строку 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
Не указывайте значения справа от знака равенства. Кавычки не нужны, и возможно, что некоторые процессоры воспримут их как буквальные части пути и потерпят неудачу.
Настройте git
для работы с файлами, созданными в Linux и Macos:
git config --global --replace-all core.autocrlf false git config --global --replace-all core.eol lf
Если вы обнаружите, что тесты lint:go
загадочным образом терпят неудачу, возможно, окончания строк неверны.
Теперь вы можете клонировать репозиторий и запустить yarn
.
Установите подсистему Windows для Linux (WSL) на свой компьютер. Пропустите этот шаг, если WSL уже установлен.
Откройте приглашение PowerShell (нажмите Windows Key + X
и откройте Windows PowerShell
).
Установите 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
.
Установите менеджер пакетов Yarn через npm install --global yarn
Установите Visual Studio 2017 или более поздней версии. На момент написания этой статьи последняя версия доступна по адресу [https://visualstudio.microsoft.com/downloads/]; если что-то изменилось, хорошая поисковая система должна это найти.
Убедитесь, что у вас установлен компонент Windows SDK
. В этой документации Visual Studio описаны шаги по установке компонентов. Также необходимо выбрать разработку для настольных компьютеров с рабочей нагрузкой C++.
Настройте git
для работы с файлами, созданными в Linux и Macos:
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
этого файла.
В настоящее время мы собираем Rancher Desktop с Node 20. Чтобы установить его, запустите:
nvm install 20.17
Далее вам нужно установить менеджер пакетов Yarn:
npm install --global yarn
Вам также нужно будет запустить brew install go
, если вы еще не установили go.
Затем вы можете установить зависимости с помощью:
yarn
⚠️ Работаете на Mac с чипом M1?Вам нужно будет установить переменную среды
M1
перед установкой зависимостей и запуском любых сценариев npm:export M1=1 yarnВам нужно будет запустить
git clean -fdx
, чтобы очистить все кэшированные ресурсы и повторно загрузить их с правильной аркой перед запускомyarn
, если вы ранее установили зависимости без предварительной установкиM1
.
Убедитесь, что у вас установлено следующее:
Node.js v20. Убедитесь, что у вас установлены все пакеты разработки. Например, в openSUSE Leap 15.6 вам потребуется установить nodejs20
и nodejs20-devel
.
пряжа классическая
Перейти на версию 1.22 или новее.
Зависимости описаны в документации по установке node-gyp
. Это необходимо для установки пакета npm ffi-napi
. В этих документах упоминается «правильный набор инструментов компилятора 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 позволяет отлаживать приложения Electron с помощью инструментов разработчика Chrome. Вы можете использовать его для доступа к сообщениям журнала, которые могут выводиться на консоль разработчика процесса рендеринга. Это особенно полезно для получения дополнительной отладочной информации в производственных сборках Rancher Desktop.
Чтобы включить удаленную отладку, запустите Rancher Desktop с аргументом --remote-debugging-port
.
В 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, и загруженное расширение должны быть указаны в качестве доступных целей.
Следующие шаги были протестированы с GoLand в Linux, но могут работать аналогичным образом и для других IDE JetBrains.
Установите плагин 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», чтобы начать отладку.
Каждая фиксация запускает запуск действий GitHub, в результате которого пакеты приложений ( .exe
и .dmg
) загружаются как артефакты. Это может быть полезно, если вы хотите протестировать последнюю сборку Rancher Desktop, созданную системой сборки. Эти артефакты можно скачать на странице «Сводка» завершенных действий package
.
Подобно Windows и macOS, сборки Rancher Desktop для Linux создаются на основе каждого коммита. Однако в Linux только часть процесса выполняется GitHub Actions. Заключительную часть выполняет Open Build Service.
Существует два канала репозиториев Rancher Desktop: dev
и stable
. stable
— это канал, который использует большинство пользователей. Это тот, который пользователям предлагается добавить в официальную документацию, и тот, который содержит сборки, созданные на основе официальных выпусков. dev
— это канал, который нас здесь интересует: он содержит сборки, созданные на основе последнего коммита, сделанного в main
ветке, а также во всех ветках, соответствующих формату release-*
. Чтобы узнать, как установить репозитории разработки, см. ниже.
При использовании репозиториев dev
важно понимать формат версий Rancher Desktop, доступных в репозиториях dev
. Версии имеют формат:
. . .
где:
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.
Для AppImages нет репозиториев, но вы можете получить доступ к последним разработкам AppImage здесь.
Rancher Desktop поддерживает ограниченный API на основе HTTP. API определен в pkg/rancher-desktop/assets/specs/command-api.yaml
, и вы можете увидеть примеры того, как он вызывается в клиентском коде, в go/src/rdctl
.
В настоящее время API имеет версию 1, но по-прежнему считается внутренней и экспериментальной и может быть изменен без предварительного уведомления. В какой-то момент мы ожидаем, что необходимые изменения в API будут отмечены предупреждением и уведомлением об устаревании.
Пожалуйста, ознакомьтесь с документом о вкладе.
Дополнительную документацию для разработчиков см. в каталоге документации.