16 poin oleh lancard 2025-08-23 | 25 komentar | Bagikan ke WhatsApp

Saya membuat dan merilis image Docker XWINDOW (Wayland) berbahasa Korea berbasis Debian 13 (Trixie) terbaru.

Masih banyak orang yang benar-benar menggunakan Windows, dan kadang ada saatnya Anda ingin menjalankan Linux X Window berbahasa Korea lewat Docker untuk bekerja.
Jadi!
Saya mencoba membuat lingkungan GUI berbahasa Korea berbasis Debian yang bisa diakses melalui Remote Desktop Windows.

Image ini sudah menyertakan alat-alat utama yang diperlukan untuk lingkungan pengembangan seperti Visual Studio Code, Chromium, Vim, Git, Node.js + npm, sehingga bisa langsung digunakan sebagai lingkungan pengembangan. (Karena itu ukurannya agak besar)

Fitur utamanya antara lain,

  • Mendukung koneksi Remote Desktop Windows (RDP)
  • Data dan volume tetap tersimpan: jika /home/(nama pengguna) dihubungkan ke volume Docker, data dapat dipertahankan

Hal yang perlu diperhatikan,
Karena dijalankan di Docker, VSCode dan Chromium tidak menggunakan mode sandbox. Mohon perhatikan aspek keamanannya, dan fitur suara dikecualikan karena terlalu banyak benturan dan bug. Menurut saya, kebanyakan orang kemungkinan mendengarkan musik di PC Windows mereka, jadi fitur itu saya hilangkan.

Ini adalah image yang sangat berguna terutama bagi pengguna berbahasa Korea yang ingin menyiapkan lingkungan pengembangan dengan cepat.

Sumbernya ada di https://github.com/lancard/x11-korean, jadi silakan lihat. Jika ada fitur yang Anda butuhkan, kapan saja kirim issue atau PR!

25 komentar

 
chcv0313 2025-09-09

Di dalam vscode, membuat file baru bisa, tetapi file yang sudah ada tidak bisa diedit. Bahkan setelah mengubah file yang sudah ada dengan chmod 777. Sepertinya ini masalah izin atau kepemilikan grup, jadi saya akan coba beberapa hal lagi.

 
chcv0313 2025-09-09

Sepertinya ini berhasil diatasi dengan memodifikasi file sh di entry point dan menyesuaikan XWINDOW_USER_ID dengan ID folder kerja.

 
chcv0313 2025-09-09
# set username  
XWINDOW_USER="${XWINDOW_USER:-user}"  
if ! id -u $XWINDOW_USER >/dev/null 2>&1; then  
    useradd -m -s /bin/bash $XWINDOW_USER  
    echo "user '$XWINDOW_USER' generated."  
fi  

bagian tersebut diubah menjadi

XWINDOW_USER="${XWINDOW_USER:-user}"  
XWINDOW_USER_ID="${XWINDOW_USER_ID:-1000}"  # default 1000  
if ! id -u $XWINDOW_USER >/dev/null 2>&1; then  
    useradd -m -s /bin/bash -u $XWINDOW_USER_ID $XWINDOW_USER  
    echo "user '$XWINDOW_USER' generated with UID $XWINDOW_USER_ID."  
else  
    echo "user '$XWINDOW_USER' already exists."  
fi  

lalu saya mengisi USER_ID agar sama dengan ID akun di mesin host.

 
shakespeares 2025-08-27

Apakah ini bisa dipakai sebagai pengganti WSL?

 
lancard 2025-08-27

Ya, bisa digunakan. Saya pribadi kurang suka WSL / WSL2, jadi saya memasang Docker di Hyper-V dan sedang memakai ini.

 
shakespeares 2025-08-27

Bolehkah saya dengan hati-hati menanyakan alasan Anda tidak menyukainya?

 
lancard 2025-08-27

Saya tidak suka ketika dua OS bercampur. Saya juga tidak tahu efek samping apa yang mungkin muncul. Saya pikir masing-masing OS harus berada dalam sandbox atau hanya menempati satu server fisik. Selain itu, saya juga pernah mengalami perilaku aneh pada WSL di masa lalu.

 
doovooda 2025-08-29

Karena berdasarkan pengetahuan yang saya miliki, saya kurang memahami maksud yang Anda sampaikan, jadi mungkin
bukankah ini mirip dengan struktur logika dasar WSL atau Docker?
Apakah ada bagian yang saya pahami secara keliru?

 
lancard 2025-08-29

Memang bisa dibilang WSL2 agak mirip, tetapi struktur WSL sedikit berbeda. Pada dasarnya, ia berjalan di atas kernel Windows. Memang benar WSL2 berjalan di atas hypervisor, tetapi menurut saya tingkat isolasinya agak berbeda. Karena melakukan auto-mount dua arah, kedua OS bisa mengakses filesystem satu sama lain. Akibatnya, bisa muncul hasil yang tidak diinginkan. Misalnya, Windows otomatis membuat $RECYCLE.BIN di ext4, atau jika salah satu OS dikuasai peretas, keduanya bisa terkena dampak fatal. Yang saya buat, kalau mau, tidak perlu me-mount apa pun. Bisa dijalankan sendiri tanpa terhubung ke Windows.
Selain itu, mungkin juga ada pengaruh pada kecepatan instalasi... kalau pakai cara image saya, kalau tidak suka tinggal hapus image Docker lalu salin yang baru lagi. Saat update juga tinggal ambil image-nya saja. Saya juga ingat sisi jaringan WSL2 sempat ada beberapa masalah. Selain itu, kernel Linux-nya juga bukan kernel Linux murni, setahu saya itu versi yang dikustomisasi oleh MS.
Karena saya mengarah ke Linux murni (maksudnya ingin keduanya saling terisolasi), itu agak kurang cocok dengan saya.

Saya memang hanya memaparkan kekurangannya, tetapi pada akhirnya ini juga soal selera pribadi, jadi silakan pilih yang sesuai dengan kebutuhan Anda.

 
doovooda 2025-09-03

Saya baru memeriksanya agak terlambat.
Terima kasih atas jawaban yang sangat penuh perhatian!

 
lancard 2025-08-29

Dan karena Docker sendiri pada dasarnya juga hampir hanya untuk Linux, serta ada banyak keuntungan dari menggunakan Docker seperti menjalankan Docker di atas NAS atau perbedaan huruf besar/kecil, jadi bisa dibilang itulah alasan dibuatnya ini.

 
lancard 2025-08-26

Untuk mode privileged, telah diperbarui agar berjalan di sandbox. Dalam mode privileged, resource lokal (drive C, dll.) dapat dihubungkan. Koneksi tersebut akan di-mount ke $HOME/thinclient_drives.

 
lancard 2025-08-25

Jika ingin menghubungkan resource lokal (C:, D:, dan sebagainya), jalankan dalam mode privileged. (Dengan begitu, salin file via CTRL + C / V akan berfungsi)

 
po5678 2025-08-25

Ohooook.. sepertinya VS Code tidak bisa dijalankan ya :)

 
po5678 2025-08-25

Saya jawab sendiri karena tidak ada respons; setelah mencoba ini-itu, ternyata bisa dibuka kalau dijalankan dengan code --no-sandbox di terminal.

 
lancard 2025-08-25

Hmm? Mungkin yang ada di desktop tidak terbuka?

 
po5678 2025-08-25

Ah iya, ternyata tidak bisa. Entah saya salah di bagian mana..

 
lancard 2025-08-25

Karena saya terus mengubah image, mungkin ini bisa dianggap sebagai image peralihan.
Pertama, coba pastikan ikon vscode di desktop menggunakan perintah /usr/bin/code %F,
lalu buka file /usr/bin/code dan periksa apakah baris kedua dari bawah adalah
ELECTRON_RUN_AS_NODE=1 "$ELECTRON" "$CLI" --no-sandbox --disable-gpu "$@"
.

 
chcv0313 2025-08-24

Saya orang yang baru-baru ini belajar Docker. Saya mencoba memeriksa kerentanan image ini dengan trivy, dan hasilnya muncul 1053 kerentanan. Sepertinya tidak semuanya penting, dan rasanya seperti semua hal terdeteksi begitu saja, tetapi secara praktis apakah Anda bisa memberi saran tentang bagaimana memeriksa dan mencapai keamanan image di lingkungan kerja nyata?

 
lancard 2025-08-24

Sebenarnya, ada terlalu banyak cara untuk menghilangkan kerentanan sehingga tidak ada jawaban yang pasti.
Dalam kasus saya, saya menggunakan versi terbaru yang sudah sestabil mungkin, dan saat menggunakan GitHub Actions saya mengaktifkan security bot semaksimal mungkin. Sebenarnya, seperti yang bisa Anda lihat, image xwindow kali ini tidak memiliki bagian yang diprogram, jadi kemungkinan hanya ada kerentanan dasar bawaan dari program-program yang terpasang itu sendiri.

 
grollcake 2025-08-23

Saya penasaran kenapa fakta bahwa mode sandbox tidak diterapkan menjadi catatan keamanan yang perlu diperhatikan.
Apakah ini berarti Docker tidak menyediakan fungsi sandbox untuk proses internal? Jadi mau tidak mau harus dijalankan sebagai root, dan meskipun lingkungannya terisolasi dengan Docker, tetap ada risiko malware bisa menyusup ke volume yang dipetakan ke host? Atau maksudnya file yang dibuat pengguna di dalam filesystem Docker mungkin tidak aman?

 
lancard 2025-08-23

Setahu saya, baik di Windows maupun Linux, Chrome berjalan dalam mode sandbox. Jadi... meskipun seseorang membuat exploit lewat JavaScript dan semacamnya untuk menyerang kerentanan, itu tidak akan memengaruhi OS yang sebenarnya.

Namun, dalam mode container, kemungkinan fitur itu hanya bisa diaktifkan jika mode privileged dinyalakan.

Tentu saja bisa saja diberikan panduan untuk menyalakan mode tersebut, tetapi saya menganggap container itu sendiri sudah merupakan sandbox. Mungkin rasanya seperti Windows yang bisa dinyalakan dan dimatikan dengan mudah...

Karena itulah Chromium dan VS Code berbasis Electron dibuat berjalan dalam mode non-sandbox.

Artinya, jika memang ada kerentanan di Chromium dan VS Code, dan penyerang bisa memanfaatkannya untuk membuat exploit, maka hal itu bisa berbahaya.

 
lancard 2025-08-23

Nama Docker-nya adalah lancard/xwindow-korean.

 
lancard 2025-08-23

Karena menggunakan Wayland, nama repo diubah menjadi https://github.com/lancard/xwindow-korean ~

 
lancard 2025-08-23

Karena Ubuntu termasuk keluarga Debian, Anda juga bisa menggunakan apt dan semacamnya dengan nyaman. Menurut saya, Debian ternyata lebih baik daripada image dasar Ubuntu.