27 poin oleh GN⁺ 2024-03-08 | 2 komentar | Bagikan ke WhatsApp
  • Alat untuk mengompilasi image Docker menjadi biner mandiri yang dapat dijalankan dan portabel
  • Memungkinkan penyediaan biner yang bisa dijalankan kepada pengguna tanpa perlu perintah seperti docker run, pip install, npm i, dan sebagainya

Fitur

  • Mengompilasi image Docker menjadi biner yang portabel.
  • Container yang tidak memerlukan hak akses root.
  • Dukungan MacOS dan Windows (menggunakan QEMU): direncanakan
  • Mendukung x86_64 (dukungan arm64 direncanakan)
  • Mendukung argumen
  • Mendukung penetapan variabel lingkungan menggunakan -e.
  • Mendukung penetapan volume menggunakan -v.

Cara penggunaan

  • Instal dockerc dari rilis terbaru.
  • Buat biner output menggunakan image dari Docker Hub atau image dari penyimpanan daemon Docker lokal.
  • Biner yang dihasilkan dapat dipanggil seperti biner biasa.
  • Opsi -e dan -v dapat ditentukan dengan cara yang sama seperti saat menggunakan docker run.
  • Layanan jaringan yang berjalan di dalam container dapat diakses secara langsung, tanpa perlu menentukan -p.
  • Skopeo digunakan untuk memuat image; untuk lokasi lain, lihat dokumentasinya.

Pendapat GN⁺

  • dockerc adalah alat yang berpotensi sangat meningkatkan kegunaan Docker, karena memungkinkan pengguna menjalankan aplikasi tanpa proses instalasi yang rumit. Ini bisa sangat berguna terutama bagi pengguna nonteknis.
  • Fitur mengompilasi image Docker menjadi biner menyederhanakan distribusi dan deployment, sehingga menghemat waktu dan meningkatkan efisiensi bagi developer maupun administrator sistem.
  • Namun, agar teknologi ini diadopsi secara luas, persoalan terkait keamanan, performa, dan kompatibilitas perlu diselesaikan dengan memadai. Misalnya, perlu verifikasi apakah biner hasil kompilasi seaman image Docker aslinya, dan apakah dapat berjalan lancar di semua sistem.
  • Proyek lain yang menyediakan fungsi serupa dengan Docker adalah Podman, yang menawarkan kemampuan menjalankan container tanpa hak akses root.
  • Saat mengadopsi dockerc, perlu mempertimbangkan integrasinya dengan workflow Docker yang ada, cara pembaruan dan pengelolaan image, serta ukuran dan performa biner hasil kompilasi. Keuntungan utama dari teknologi ini adalah penyederhanaan distribusi dan kemudahan penggunaan, tetapi di sisi lain perlu mempertimbangkan dengan cermat overhead yang mungkin muncul dalam proses kompilasi serta potensi masalah kompatibilitas.

2 komentar

 
cosine20 2024-03-11

Oh, cukup menarik.

 
GN⁺ 2024-03-08

Komentar Hacker News

  • Ini benar-benar keren.

    • Pengguna sedang berusaha membuat Docker mereka lebih mudah didistribusikan. Saat ini, itu berupa skrip Python sederhana di lingkungan Python di dalam container Docker di dalam container QEMU yang mengotomatiskan klik dan menggunakan netcat. Ukuran filenya 20GB, cukup ringan menurut standar modern.
  • Dulu saya pernah menggunakan dan merekomendasikan nix-bundle¹ atau padanan resminya, nix bundle².

    • Alat-alat ini memungkinkan Anda melewati tahap mengelola image Docker secara langsung. Sangat berguna terutama ketika membuat image Docker itu sulit atau prosesnya sudah seperti seni yang terlupakan.
    • nix bundle dapat membuat bukan hanya executable gemuk, tetapi juga image Docker, AppImages, dan beberapa format image/executable lainnya.
  • Sangat menyenangkan kembali ke executable portabel dengan OS bawaan.

    • Ini membawa "berjalan di komputer saya" ke level baru dari neraka pemecahan masalah. Meski begitu, proyeknya keren.
  • Pengguna sedang menunggu orang-orang mulai mengirim Dockerfile yang menghasilkan container Docker untuk menjalankan hal-hal seperti ini.

  • Ada semacam ironi kosmik besar di sini.

    • Tepat setelah bagian yang meminta cukup sebuah executable tanpa perlu build atau instalasi, langsung disusul mantra zig untuk membangun proyek ini.
  • Ini kemajuan yang keren, Nils! Senang melihat perkembangan proyek ini sejak percakapan kita di AGI House.

    • dockerc menggunakan Zig + crun + squashfs/overlayfs. Nils (penulisnya) membagikan lebih banyak informasi di thread ini.
  • Masih tetap membutuhkan hal yang berbeda untuk arsitektur yang berbeda.

    • Pada titik ini, saya pikir lebih baik mengompilasinya secara statis dan menyertakan sistem berkas virtual. Ini pada dasarnya sama seperti yang dibuat Sun pada tahun 90-an.
  • Ide bagus! Ini sebenarnya bekerja bagaimana?

    • Pengguna menebak bahwa ini adalah loader kustom + Docker + image yang dibungkus menjadi binary yang bisa dieksekusi.
  • Keren karena memakai gambar rant.

    • Gambar rant berikutnya mungkin akan berbunyi, "menjalankan executable seharusnya membuka jendela yang berisi aplikasi tersebut".
  • Apa maksudnya ini? Apakah ini berarti pengguna bisa mendistribusikan executable Ruby portabel tanpa harus menginstal Ruby?