Rancher Desktop is an open-source project that brings Kubernetes and
container management to the desktop. It runs on Windows, macOS and
Linux. This README pertains to the development of Rancher Desktop.
For user-oriented information about Rancher Desktop, please see rancherdesktop.io.
For user-oriented documentation, please see docs.rancherdesktop.io.
Overview
Rancher Desktop is an Electron application with the primary business logic
written in TypeScript and JavaScript. It leverages several other pieces of
technology to provide the platform elements which include k3s, kubectl, nerdctl
WSL, QEMU, and more. The application wraps numerous pieces of technology to
provide one cohesive application.
Install git, go, nvm, and unzip via scoop install git go nvm python unzip.
Check node version with nvm list. If node v16 is not installed or set as the current version, then install using nvm install 16 and set as current using nvm use 16.xx.xx.
Install Visual Studio 2017 or higher. Make sure you have the Windows SDK component installed. This Visual Studio docs describes steps to install components.
Ensure msbuild_path and msvs_version are configured correctly in .npmrc file. Run the following commands to set these properties:
npm config set msvs_version <visual-studio-version-number>
npm config set msbuild_path <path/to/MSBuild.exe>
You can now clone the repository and run npm install.
macOS
Install Node.js v16 and Go, for example via Homebrew:
brew install node@16
brew link node@16
brew install go
Then you can install dependencies with:
npm install
Linux
Ensure you have the following installed:
Node.js v16. Make sure you have any development packages
installed. For example, on openSUSE Leap 15.3 you would need to install
nodejs16 and nodejs16-devel.
Go 1.18 or later.
Dependencies described in the node-gyp docs installation.
This is required to install the ffi-napi npm package. These docs mention
"a proper C/C++ compiler toolchain". You can install gcc and g++ for this.
Then you can install dependencies with:
npm install
You can then run Rancher Desktop as described below. It may fail on the first run -
if this happens, try doing a factory reset and re-running, which has been known
to solve this issue.
Running
Once you have your dependencies installed you can run a development version
of Rancher Desktop with:
npm run dev
Tests
To run the unit tests:
npm test
To run the integration tests:
npm run test:e2e
Building
Rancher can be built from source on Windows, macOS or Linux.
Cross-compilation is currently not supported. To run a build do:
npm run build
The build output goes to dist/.
Development Builds
Windows and macOS
Each commit triggers a GitHub Actions run that results in application bundles
(.exes and .dmgs) being uploaded as artifacts. This can be useful if you
want to test the latest build of Rancher Desktop as built by the build system.
You can download these artifacts from the Summary page of completed package
actions.
Linux
Similar to Windows and macOS, Linux builds of Rancher Desktop are made from each
commit. However on Linux, only part of the process is done by GitHub Actions.
The final part of it is done by Open Build Service.
There are two channels of the Rancher Desktop repositories: dev and stable.
stable is the channel that most users use. It is the one that users are
instructed to add in the official documentation, and the one that contains
builds that are created from official releases. dev is the channel that we are
interested in here: it contains builds created from the latest commit made on
the main branch, and on any branches that match the format release-*. To
learn how to install the development repositories, see below.
When using the dev repositories, it is important to understand the format of
the versions of Rancher Desktop available from the dev repositories.
The versions are in the format:
<priority>.<branch>.<commit_time>.<commit>
where:
priority is a meaningless number that exists to give versions built from the main
branch priority over versions built from the release-* branches when updating.
branch is the branch name; dashes are removed due to constraints imposed by
package formats.
commit_time is the UNIX timestamp of the commit used to make the build.
commit is the shortened hash of the commit used to make the build.
请发表评论