Saya sangat senang mengumumkan bahwa YAMLResume sekarang memiliki image docker, dan Anda dapat menjalankan YAMLResume secara instan dengan docker.

Mengapa Docker?
YAMLResume adalah CLI tool Node.js dan library. Memasang YAMLResume sendiri tidak sulit karena hanya membutuhkan Node.js. Bahkan, kita bisa mengkompilasinya menjadi binary dan menjalankannya langsung tanpa memasang Node.js.
Namun, YAMLResume memiliki dependensi wajib pada LaTeX, yang membawa beberapa masalah baru:
- Memasang LaTeX memakan waktu; biasanya butuh sekitar 5–10 menit untuk mendownload distribusi LaTeX yang tepat dan mengkonfigurasinya.
- LaTeX bukan program binary tunggal; itu adalah kumpulan program. Beberapa pengguna tidak suka memasang banyak program di mesin mereka.
Meskipun kami sudah menyediakan panduan instalasi yang sangat komprehensif yang mencakup macOS, Windows, Ubuntu, dan RHEL, bahkan dengan instruksi untuk memasang YAMLResume dan LaTeX dan membuatnya bekerja bersama, prosesnya masih bisa menyakitkan bagi beberapa pengguna.
Docker adalah solusi yang great untuk masalah-masalah ini: ia dapat mengemas semuanya menjadi satu image, membuat instalasi dan konfigurasi menjadi mudah.
Cara Menggunakannya
Sebuah gambar bernilai seribu kata. Berikut adalah screenshot yang menunjukkan cara menggunakannya:
Image docker kami telah terbundel sebelumnya dengan semua yang diperlukan, termasuk:
Anda dapat membuat curriculum vitae baru secara instan dengan perintah berikut:
docker run --rm -v $(pwd):/home/yamlresume yamlresume/yamlresume new my-resume.ymlEdit my-resume.yml sesuai kebutuhan dan kemudian bangun curriculum vitae dari
YAML ke PDF:
docker run --rm -v $(pwd):/home/yamlresume yamlresume/yamlresume build my-resume.ymlDi Balik Layar
Jika Anda familiar dengan docker, Anda mungkin sudah tahu cara kerjanya. Jika tidak, berikut penjelasan singkat:
docker run ... yamlresume/yamlresume- menjalankan container baru dari imageyamlresume/yamlresume. Jika image ini tidak ada di mesin lokal Anda, itu akan menariknya dari docker Hub.--rm- secara otomatis menghapus container saat keluar.-v $(pwd):/home/yamlresume- me-mount direktori saat ini ($(pwd)) ke container di/home/yamlresume, memungkinkan container mengakses file lokal.new my-resume.ymlataubuild my-resume.yml- menjalankan sub-command CLI yamlresume new atau build untuk membuat atau membangun curriculum vitae dengan nama filemy-resume.yml.
Pada dasarnya, Anda dapat memanggil semua sub-command CLI
yamlresume dengan cara ini—cukup tambahkan sub-command setelah
yamlresume/yamlresume dan kemudian ikuti panduan penggunaan yang sesuai.
Flag -v cukup penting karena me-mount direktori saat ini ($(pwd)) ke
container di /home/yamlresume, memungkinkan sinkronisasi file dua arah
antara direktori lokal dan container. Tanpa flag ini, artefak output build
akan hilang setelah container keluar.
Teknik
Membuat image docker tidak sulit jika Anda sedikit familiar dengan docker. Namun, membungkus YAMLResume di docker tidak semudah yang terdengar. Berikut beberapa tantangan.
Konfigurasi LaTeX yang Membosankan
Memasang distribusi LaTeX yang dapat bekerja memakan waktu; biasanya butuh sekitar 5–10 menit untuk mendownload dan mengkonfigurasi distribusi LaTeX yang tepat. Di GitHub Action runner, proses ini lebih lama—hingga 20+ menit.
RUN apt update && \
apt install -y \
texlive-xetex \
texlive-fonts-extra \
texlive-lang-all \
fonts-noto-cjk \
fonts-noto-cjk-extra \Kami membuatnya menjadi proses 3 langkah untuk membangun image docker yamlresume:
- Mulai dari image Node.js sebagai base.
- Pasang dan konfigurasi distribusi LaTeX.
- Pasang CLI yamlresume.
Seperti yang disebutkan, langkah 2 adalah bagian yang paling memakan waktu. Jika kami harus memulai dari awal setiap kali kami perlu memperbarui image docker, butuh 30 menit untuk membangun image docker di github action runner.
Untuk menghindari ini, kami menggunakan build multi-stage untuk caching distribusi LaTeX, jadi kami tidak perlu memasangnya dari awal setiap kali kami memperbarui image docker.
Oleh karena itu, kami membuat
yamlresume/yamlresume-base
yang baru, yang merupakan image base yang memiliki Node.js dan distribusi
LaTeX yang terpasang. Image base ini stabil dan tidak akan diperbarui terlalu
sering, dan image yamlresume/yamlresume kami dibangun di atas image base
ini. Hanya butuh 3 menit untuk menarik image yamlresume/yamlresume-base dan
memasang CLI yamlresume di atasnya, yang secara drastis mengurangi waktu
iterasi.
Dukungan Multi-Platform
Tantangan lain adalah mendukung build multi-platform. Seperti yang kita ketahui, macOS M1 dan yang lebih baru adalah mesin berbasis ARM. Meskipun mereka dapat menjalankan image docker dengan arsitektur AMD64 melalui emulasi, performanya 10x lebih buruk.
Karenanya, kami harus mendukung image multi-platform untuk
yamlresume/yamlresume. Untungnya, docker secara resmi menyediakan panduan
rinci tentang cara membangun image multi-platform di github
actions.
Image docker YAMLResume mendukung dua
platform: linux/amd64
dan linux/arm64, yang seharusnya cukup untuk mencakup sebagian besar mesin
desktop dan server.
Nikmati YAMLResume dengan docker!
Written by
Xiao HanyuAt
Fri Jun 06 2025