Rancher Desktop adalah proyek sumber terbuka yang menghadirkan Kubernetes dan manajemen container ke desktop. Ini berjalan di Windows, macOS dan Linux. README ini berkaitan dengan pengembangan Rancher Desktop. Untuk informasi berorientasi pengguna tentang Rancher Desktop, silakan lihat rancherdesktop.io. Untuk dokumentasi berorientasi pengguna, silakan lihat docs.rancherdesktop.io.
Rancher Desktop adalah aplikasi Electron yang sebagian besar ditulis dalam TypeScript. Ini menggabungkan berbagai teknologi lain untuk menyediakan satu aplikasi yang kohesif. Ini mencakup alat baris perintah, rdctl
, yang ditulis dalam Go. Sebagian besar aktivitas pengembang, seperti menjalankan pembangunan pengembangan, membangun/mengemas Rancher Desktop, menjalankan pengujian unit, dan menjalankan pengujian ujung ke ujung, dilakukan melalui skrip yarn
. Ada beberapa pengecualian, seperti menjalankan tes BATS.
Ada dua opsi untuk membangun dari sumber di Windows: dengan Pengaturan VM Pengembangan atau Pengaturan Lingkungan Pengembangan Manual dengan instalasi Windows yang sudah ada.
Unduh mesin virtual pengembangan Microsoft Windows 10. Semua langkah berikut harus dilakukan di mesin virtual itu.
Buka prompt PowerShell (tekan Tombol Windows + X
dan buka Windows PowerShell
).
Jalankan skrip pengaturan otomatis:
Set-ExecutionPolicy RemoteSigned -Scope Pengguna Saat Ini iwr -useb 'https://github.com/rancher-sandbox/rancher-desktop/raw/main/scripts/windows-setup.ps1' | iex
Tutup perintah PowerShell yang memiliki hak istimewa.
Pastikan msbuild_path
dan msvs_version
dikonfigurasi dengan benar di file .npmrc
. Jalankan perintah berikut untuk mengatur properti ini:
npm config set msvs_versionnpm config set msbuild_path
Misalnya untuk Visual Studio 2022:
npm config set msvs_version 2022 npm config set msbuild_path "C:Program FilesMicrosoft Visual Studio2022CommunityMSBuildCurrentBinMSBuild.exe"
Jika Anda mendapatkan pesan kesalahan saat mencoba menjalankan npm config set...
, jalankan npm config edit
lalu tambahkan baris seperti
msvs_version=2022 msbuild_path=C:Program Files (x86)Microsoft Visual Studio2022CommunityMSBuildCurrentBinMSBuild.exe
Jangan mengutip nilai di sisi kanan tanda sama dengan. Tanda kutip tidak diperlukan, dan ada kemungkinan beberapa prosesor akan memperlakukannya sebagai bagian literal dari jalur, dan kemudian gagal.
Konfigurasikan git
agar berfungsi dengan file yang berasal dari linux dan macos:
git config --global --replace-all core.autocrlf false git config --global --replace-all core.eol lf
Jika Anda menemukan pengujian lint:go
gagal secara misterius, kemungkinan akhir barisnya salah.
Anda sekarang dapat mengkloning repositori dan menjalankan yarn
.
Instal Subsistem Windows untuk Linux (WSL) di mesin Anda. Lewati langkah ini, jika WSL sudah terinstal.
Buka prompt PowerShell (tekan Tombol Windows + X
dan buka Windows PowerShell
).
Instal Scoop melalui iwr -useb get.scoop.sh | iex
.
Instal 7zip, git, go, mingw, nvm, dan unzip melalui scoop install 7zip git go mingw nvm python unzip
. Periksa versi simpul dengan nvm list
. Jika node v20 tidak diinstal atau ditetapkan sebagai versi saat ini, maka instal menggunakan nvm install 20
dan atur sebagai versi saat ini menggunakan nvm use 20.xx.xx
.
Instal manajer paket benang melalui npm install --global yarn
Instal Visual Studio 2017 atau lebih tinggi. Saat tulisan ini dibuat, versi terbaru tersedia di [https://visualstudio.microsoft.com/downloads/]; jika itu diubah, mesin pencari yang baik akan menemukannya.
Pastikan Anda telah menginstal komponen Windows SDK
. Dokumen Visual Studio ini menjelaskan langkah-langkah untuk menginstal komponen. Pengembangan Desktop dengan beban kerja C++ juga perlu dipilih.
Konfigurasikan git
agar berfungsi dengan file yang berasal dari linux dan macos:
git config --global --replace-all core.autocrlf false git config --global --replace-all core.eol lf
Jika Anda menemukan pengujian lint:go
gagal secara misterius, kemungkinan akhir barisnya salah. 9. Pastikan msbuild_path
dan msvs_version
dikonfigurasi dengan benar di file .npmrc
. Jalankan perintah berikut untuk mengatur properti ini:
npm config set msvs_versionnpm config set msbuild_path
Misalnya untuk Visual Studio 2022:
npm config set msvs_version 2022 npm config set msbuild_path "C:Program FilesMicrosoft Visual Studio2022CommunityMSBuildCurrentBinMSBuild.exe"
Jika Anda mendapatkan pesan kesalahan saat mencoba menjalankan npm config set...
, jalankan npm config edit
lalu tambahkan baris seperti
msvs_version=2022 msbuild_path=C:Program Files (x86)Microsoft Visual Studio2022CommunityMSBuildCurrentBinMSBuild.exe
Jangan mengutip nilai di sisi kanan tanda sama dengan. Mereka tidak diperlukan, dan ada kemungkinan bahwa beberapa prosesor akan memperlakukannya sebagai bagian literal dari jalur tersebut, dan kemudian gagal.
Anda sekarang dapat mengkloning repositori dan menjalankan yarn
.
Instal nvm
untuk mendapatkan Node.js dan npm:
Lihat https://github.com/nvm-sh/nvm#installing-and-updating dan jalankan perintah curl
atau wget
untuk menginstal nvm.
Perhatikan bahwa skrip ini menambahkan kode yang berhubungan dengan nvm
ke file profil (seperti ~/.bash_profile
). Untuk menambahkan akses ke nvm
ke sesi shell saat ini, Anda perlu mencari source
file tersebut.
Saat ini kami membangun Rancher Desktop dengan Node 20. Untuk menginstalnya, jalankan:
nvm install 20.17
Selanjutnya, Anda perlu menginstal pengelola paket benang:
npm install --global yarn
Anda juga harus menjalankan brew install go
jika Anda belum menginstal go.
Kemudian Anda dapat menginstal dependensi dengan:
yarn
⚠️ Bekerja pada mac dengan chip M1?Anda perlu mengatur variabel lingkungan
M1
sebelum menginstal dependensi dan menjalankan skrip npm apa pun:export M1=1 yarnAnda ingin menjalankan
git clean -fdx
untuk membersihkan semua aset yang di-cache dan mengunduh ulang dengan arch yang benar sebelum menjalankanyarn
jika sebelumnya Anda menginstal dependensi tanpa menyetelM1
terlebih dahulu.
Pastikan Anda telah menginstal yang berikut ini:
Node.js v20. Pastikan Anda telah menginstal paket pengembangan apa pun. Misalnya, pada openSUSE Leap 15.6 Anda perlu menginstal nodejs20
dan nodejs20-devel
.
benang klasik
Mulai 1.22 atau lebih baru.
Ketergantungan dijelaskan dalam instalasi dokumen node-gyp
. Ini diperlukan untuk menginstal paket ffi-napi
npm. Dokumen ini menyebutkan "rantai alat kompiler C/C++ yang tepat". Anda dapat menginstal gcc
dan g++
untuk ini.
Kemudian Anda dapat menginstal dependensi dengan:
yarn
Anda kemudian dapat menjalankan Rancher Desktop seperti dijelaskan di bawah ini. Ini mungkin gagal saat pertama kali dijalankan - jika ini terjadi, coba lakukan reset pabrik dan jalankan kembali, yang telah diketahui dapat mengatasi masalah ini.
Setelah dependensi terinstal, Anda dapat menjalankan versi pengembangan Rancher Desktop dengan:
yarn dev
Untuk menjalankan pengujian unit:
yarn test
Untuk menjalankan tes integrasi:
yarn test:e2e
Rancher dapat dibuat dari sumber di Windows, macOS atau Linux. Kompilasi silang saat ini tidak didukung. Untuk menjalankan build, lakukan:
yarn build yarn package
Output build menuju ke dist/
.
Debugger jarak jauh Chrome memungkinkan Anda men-debug aplikasi Electron menggunakan Alat Pengembang Chrome. Anda dapat menggunakannya untuk mengakses pesan log yang mungkin dihasilkan ke konsol pengembang dari proses perender. Hal ini sangat berguna untuk mendapatkan informasi debug tambahan dalam versi produksi Rancher Desktop.
Untuk mengaktifkan proses debug jarak jauh, jalankan Rancher Desktop dengan argumen --remote-debugging-port
.
Di Linux, mulai Rancher Desktop dengan perintah berikut:
peternak-desktop --remote-debugging-port="8315" --remote-allow-origins=http://localhost:8315
Di macOS, mulai Rancher Desktop dengan perintah berikut:
/Applications/Rancher Desktop.app/Contents/MacOS/Rancher Desktop --remote-debugging-port="8315" --remote-allow-origins=http://localhost:8315
Di Windows, mulai Rancher Desktop dengan perintah berikut:
cd 'C:Program FilesRancher Desktop'& '.Rancher Desktop.exe' --remote-debugging-port="8315" --remote-allow-origins=http://localhost:8315
Setelah Rancher Desktop dimulai, buka Chrome dan navigasikan ke http://localhost:8315/
. Pilih target yang tersedia untuk memulai debugging jarak jauh Rancher Desktop.
Untuk men-debug ekstensi dari jarak jauh, ikuti proses yang sama seperti melakukan debug jarak jauh pada build. Namun, Anda perlu memuat ekstensi sebelum menavigasi ke http://localhost:8315/
. Rancher Desktop dan ekstensi yang dimuat harus dicantumkan sebagai target yang tersedia.
Langkah-langkah berikut telah diuji dengan GoLand di Linux tetapi mungkin berfungsi untuk IDE JetBrains lain dengan cara yang serupa.
Instal plugin Node.js (melalui File > Settings > Plugins
)
Buka dialog "Jalankan/Debug Konfigurasi" (melalui Run > Edit Configurations...
)
Tambahkan konfigurasi Node.js baru dengan pengaturan berikut:
Nama: nama untuk konfigurasi debug, misalnya rancher desktop
Penerjemah simpul: pilih penerjemah simpul yang Anda instal, misalnya /usr/bin/node
Parameter simpul: scripts/ts-wrapper.js scripts/dev.ts
Direktori kerja: pilih direktori kerja proyek Anda, misalnya ~/src/rancher-desktop
Simpan konfigurasi
Anda sekarang dapat mengatur breakpoint dan klik "Debug 'rancher desktop'" untuk memulai debugging
Setiap penerapan memicu tindakan GitHub yang dijalankan yang menghasilkan bundel aplikasi ( .exe
s dan .dmg
s) yang diunggah sebagai artefak. Ini dapat berguna jika Anda ingin menguji versi terbaru Rancher Desktop yang dibuat oleh sistem build. Anda dapat mengunduh artefak ini dari halaman Ringkasan tindakan package
yang telah diselesaikan.
Mirip dengan Windows dan macOS, Linux build dari Rancher Desktop dibuat dari setiap commit. Namun di Linux, hanya sebagian proses yang dilakukan oleh GitHub Actions. Bagian terakhirnya dilakukan oleh Open Build Service.
Ada dua saluran repositori Rancher Desktop: dev
dan stable
. stable
adalah saluran yang digunakan sebagian besar pengguna. Ini adalah salah satu yang diperintahkan pengguna untuk ditambahkan dalam dokumentasi resmi, dan yang berisi build yang dibuat dari rilis resmi. dev
adalah saluran yang kami minati di sini: berisi build yang dibuat dari komit terbaru yang dibuat di cabang main
, dan di cabang mana pun yang cocok dengan format release-*
. Untuk mempelajari cara menginstal repositori pengembangan, lihat di bawah.
Saat menggunakan repositori dev
, penting untuk memahami format versi Rancher Desktop yang tersedia dari repositori dev
. Versinya dalam format:
. . .
Di mana:
priority
adalah angka tidak berarti yang ada untuk memberikan prioritas pada versi yang dibangun dari cabang main
dibandingkan versi yang dibangun dari cabang release-*
saat memperbarui.
branch
adalah nama cabang; tanda hubung dihapus karena batasan yang diberlakukan oleh format paket.
commit_time
adalah stempel waktu UNIX dari komit yang digunakan untuk membuat build.
commit
adalah hash singkat dari komit yang digunakan untuk membuat build.
.deb
Anda dapat menambahkan repo dengan langkah-langkah berikut:
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
Anda dapat melihat versi yang tersedia dengan:
apt list -a rancher-desktop
Setelah Anda menemukan versi yang ingin Anda instal, Anda dapat menginstalnya dengan:
sudo apt install rancher-desktop=
Ini berfungsi bahkan jika Anda sudah menginstal versi Rancher Desktop.
.rpm
Anda dapat menambahkan repo dengan:
sudo zypper addrepo https://download.opensuse.org/repositories/isv:/Rancher:/dev/rpm/isv:Rancher:dev.repo sudo zypper refresh
Anda dapat melihat versi yang tersedia dengan:
zypper search -s rancher-desktop
Terakhir, instal versi yang Anda inginkan dengan:
zypper install --oldpackage rancher-desktop=
Ini berfungsi bahkan jika Anda sudah menginstal versi Rancher Desktop.
Tidak ada repositori untuk AppImages, tetapi Anda dapat mengakses pengembangan terbaru AppImage yang dibuat di sini.
Rancher Desktop mendukung API berbasis HTTP terbatas. API didefinisikan dalam pkg/rancher-desktop/assets/specs/command-api.yaml
, dan Anda dapat melihat contoh cara pemanggilannya dalam kode klien di go/src/rdctl
.
API saat ini berada pada versi 1, namun masih dianggap internal dan eksperimental, dan dapat berubah tanpa pemberitahuan terlebih dahulu. Pada titik tertentu, kami berharap perubahan yang diperlukan pada API akan melalui pemberitahuan peringatan dan penghentian.
Silakan lihat dokumen tentang berkontribusi.
Silakan lihat direktori dokumen untuk dokumentasi pengembang lebih lanjut.