Hub documentation
Spaces Dev Mode: Pengembangan yang mulus di Spaces
Spaces Dev Mode: Pengembangan yang mulus di Spaces
Spaces Dev Mode merupakan bagian dari paket PRO atau Team & Enterprise.
Spaces Mode Dev
Spaces Dev Mode adalah fitur yang memudahkan proses debugging aplikasi Anda dan mempercepat iterasi pada Spaces.
Setiap kali Anda melakukan commit perubahan ke repo Space Anda, image Docker yang mendasarinya akan dibangun ulang, dan kemudian virtual machine baru akan diproses untuk menampung container baru.
Mode Dev memungkinkan Anda memperbarui Space Anda jauh lebih cepat dengan menimpa image Docker.
Gambar Docker Dev Mode memulai aplikasi Anda sebagai sub-proses, sehingga Anda dapat memulai ulang aplikasi tersebut tanpa menghentikan kontainer Space itu sendiri. Gambar ini juga memulai server SSH (untuk editor dan terminal lokal) serta server VS Code (untuk VS Code Web di dalam produk) di latar belakang, sehingga Anda dapat terhubung ke Space.
Kemampuan untuk terhubung ke Space yang sedang berjalan membuka beberapa kasus penggunaan:
- Anda dapat membuat perubahan pada kode aplikasi tanpa Space harus dibangun ulang setiap kali
- Anda dapat men-debug aplikasi yang sedang berjalan dan memantau sumber daya secara langsung
Secara keseluruhan, hal ini membuat pengembangan dan eksperimen dengan Spaces jauh lebih cepat dengan melewati fase rebuild image Docker.
Antarmuka
Setelah Dev Mode diaktifkan pada Space Anda, Anda seharusnya melihat modal seperti berikut.

Aplikasi tidak dimulai ulang secara otomatis saat Anda mengubah kode. Agar perubahan Anda muncul di Space, Anda perlu menggunakan tombol Refresh yang akan memulai ulang aplikasi.
Menghubungkan
Dev Mode mengekspos Space yang sedang berjalan sebagai host SSH standar. VS Code dan editor lain terhubung melalui endpoint SSH yang sama.
SSH
Setelah Dev Mode berjalan, hubungkan dengan:
ssh <space-subdomain>@ssh.hf.space
Subdomain ditampilkan di modal kontrol Mode Dev. Anda juga dapat mengambilnya secara programatik:
from huggingface_hub import HfApi
print(HfApi().space_info("namespace/repo").subdomain)CLI Hugging Face dapat menyelesaikan subdomain dan membuka sesi untuk Anda:
# SSH into the Space's Dev Mode container
hf spaces ssh username/my-space
# Print the SSH command instead of running it
hf spaces ssh username/my-space --dry-run
# Use a specific identity file
hf spaces ssh username/my-space -i ~/.ssh/id_ed25519Gunakan --auto untuk mengaktifkan Dev Mode tanpa meminta konfirmasi jika belum berjalan. Lihat referensi CLI hf spaces ssh untuk daftar lengkap opsi.
Anda perlu menambahkan kunci SSH publik mesin Anda ke akun pengguna Anda agar dapat terhubung ke Space menggunakan SSH. Lihat dokumentasi Git over SSH untuk instruksi yang lebih rinci.
VS Code
Anda juga dapat menggunakan instalasi lokal VS Code untuk terhubung ke kontainer Space. Untuk melakukannya, instal ekstensi Remote - SSH dan terhubung ke host <space-subdomain>@ssh.hf.space yang sama.
Menyimpan perubahan
# Add changes and commit them
git add .
git commit -m "Persist changes from Dev Mode"
# Push the commit to persist them in the repo
git pushModal akan menampilkan peringatan jika Anda memiliki perubahan yang belum di-commit atau belum di-push di Space:

Mengaktifkan Mode Dev
Anda dapat mengaktifkan Dev Mode pada Space Anda melalui antarmuka web atau melalui API.
Melalui API
Anda dapat mengaktifkan/menonaktifkan Mode Dev secara programatik:
POST https://huggingface.co/api/spaces/{namespace}/{repo}/dev-mode
Content-Type: application/json
Authorization: Bearer {token}
{
"enabled": true
}Melalui antarmuka web



Anda juga dapat membuat Space dengan mode dev diaktifkan:

Keterbatasan
Dev Mode saat ini tidak tersedia untuk Spaces statis. Spaces Docker juga memiliki beberapa persyaratan tambahan.
Docker Spaces
Dev Mode didukung untuk Docker Spaces. Namun, Space Anda harus mematuhi aturan berikut agar Dev Mode berfungsi dengan baik.
- Paket-paket berikut harus diinstal:
bash(diperlukan untuk membangun koneksi SSH)curl,wgetdanprocps(diperlukan oleh proses server VS Code)gitdangit-lfsuntuk dapat melakukan commit dan push perubahan dari lingkungan Dev Mode Anda
Kode aplikasi Anda harus berada di folder
/appagar daemon Dev Mode dapat mendeteksi perubahan.Folder
/appharus dimiliki oleh pengguna dengan uid1000agar Anda dapat membuat perubahan pada kode.Dockerfile harus berisi instruksi
CMDuntuk startup. Lihat dokumentasi Docker tentang instruksiCMDuntuk detail lebih lanjut.
Dev Mode berfungsi dengan baik ketika image dasar berbasis debian (misalnya, ubuntu).
Distro Linux yang lebih eksotis (misalnya, alpine) tidak diuji dan Dev Mode tidak dijamin berfungsi di atasnya.
Contoh Dockerfile yang kompatibel
Ini adalah contoh Dockerfile yang kompatibel dengan Spaces Dev Mode.
Ini menginstal paket yang diperlukan dengan apt-get, beserta beberapa paket tambahan untuk kenyamanan pengembang (yaitu: top, vim dan nano).
Kemudian, aplikasi NodeJS dimulai dari /app.
FROM node:19-slim
RUN apt-get update && \
apt-get install -y \
bash \
git git-lfs \
wget curl procps \
htop vim nano && \
rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY --link ./ /app
RUN npm i
RUN chown 1000 /app
USER 1000
CMD ["node", "index.js"]Beberapa contoh Docker Spaces yang kompatibel dengan Dev Mode tersedia di organisasi ini. Silakan duplikat mereka di namespace Anda!
Contoh aplikasi Python (server HTTP FastAPI): https://huggingface.co/spaces/dev-mode-explorers/dev-mode-python
Contoh aplikasi JavaScript (server HTTP Express.js): https://huggingface.co/spaces/dev-mode-explorers/dev-mode-javascript
Umpan Balik
Anda dapat membagikan umpan balik Anda tentang Spaces Dev Mode langsung di HF Hub: https://huggingface.co/spaces/dev-mode-explorers/README/discussions
Update on GitHub