Je suis super excité d'annoncer qu'YAMLResume a maintenant une image docker, et vous pouvez exécuter YAMLResume instantanément avec docker.
Pourquoi Docker ?
YAMLResume est un outil CLI Node.js et une bibliothèque. Installer YAMLResume lui-même n'est pas difficile puisqu'il ne nécessite que Node.js. En fait, nous pouvons même le compiler en binaire et l'exécuter directement sans installer Node.js.
Cependant, YAMLResume a une dépendance obligatoire sur LaTeX, ce qui apporte quelques nouveaux problèmes :
- Installer LaTeX prend du temps ; il faut généralement environ 5–10 minutes pour télécharger une distribution LaTeX appropriée et la configurer.
- LaTeX n'est pas un seul programme binaire ; c'est une collection de programmes. Certains utilisateurs n'aiment pas installer beaucoup de programmes sur leurs machines.
Bien que nous fournissions déjà un guide d'installation très complet couvrant macOS, Windows, Ubuntu, et RHEL, même avec des instructions sur l'installation d'YAMLResume et LaTeX et les faire fonctionner ensemble, le processus peut encore être pénible pour certains utilisateurs.
Docker est une excellente solution à ces problèmes : il peut tout empaqueter dans une seule image, rendant l'installation et la configuration faciles.
Comment l'utiliser
Une image vaut mille mots. Voici une capture d'écran montrant comment l'utiliser :
Notre image docker a tout pré-empaqueté, incluant :
Vous pouvez créer un nouveau CV instantanément avec la commande suivante :
docker run --rm -v $(pwd):/home/yamlresume yamlresume/yamlresume new my-resume.yml
Éditez my-resume.yml
en conséquence et ensuite construisez le CV du YAML vers PDF :
docker run --rm -v $(pwd):/home/yamlresume yamlresume/yamlresume build my-resume.yml
Sous le capot
Si vous connaissez docker, vous savez peut-être déjà comment cela fonctionne. Sinon, voici une explication rapide :
docker run ... yamlresume/yamlresume
- exécute un nouveau conteneur depuis l'imageyamlresume/yamlresume
. Si cette image n'existe pas sur votre machine locale, elle sera téléchargée depuis le docker Hub.--rm
- supprime automatiquement le conteneur quand il se termine.-v $(pwd):/home/yamlresume
- monte le répertoire courant ($(pwd)
) dans le conteneur à/home/yamlresume
, permettant au conteneur d'accéder aux fichiers locaux.new my-resume.yml
oubuild my-resume.yml
- exécute la sous-commande CLI yamlresume new ou build pour créer ou construire un CV avec le nom de fichiermy-resume.yml
.
En gros, vous pouvez appeler toutes les sous-commandes CLI yamlresume
de cette
façon—ajoutez simplement la sous-commande après yamlresume/yamlresume
et suivez ensuite
le guide d'utilisation correspondant.
Le drapeau -v
est assez important car il monte le répertoire courant
($(pwd)
) dans le conteneur à /home/yamlresume
, permettant une synchronisation de fichiers bidirectionnelle
entre le répertoire local et le conteneur. Sans ce drapeau, l'artefact de sortie de construction
sera perdu après que le conteneur se termine.
Ingénierie
Construire une image docker n'est pas difficile si vous connaissez un peu docker. Cependant, envelopper YAMLResume dans docker n'est pas aussi facile que cela en a l'air. Voici quelques-uns des défis.
La configuration LaTeX est fastidieuse
Installer une distribution LaTeX fonctionnelle prend du temps ; il faut généralement environ 5–10 minutes pour télécharger et configurer une distribution LaTeX appropriée. Dans les runners GitHub Action, ce processus est encore plus long—jusqu'à 20+ minutes.
RUN apt update && \
apt install -y \
texlive-xetex \
texlive-fonts-extra \
texlive-lang-all \
fonts-noto-cjk \
fonts-noto-cjk-extra \
Nous en faisons un processus en 3 étapes pour construire l'image docker d'yamlresume :
- Commencer depuis une image Node.js comme base.
- Installer et configurer une distribution LaTeX.
- Installer le CLI yamlresume.
Comme mentionné, l'étape 2 est la partie la plus chronophage. Si nous devions recommencer chaque fois que nous avions besoin de mettre à jour l'image docker, cela prendrait 30 minutes pour construire l'image docker dans un runner d'action github.
Pour éviter cela, nous utilisons une construction multi-étapes pour mettre en cache la distribution LaTeX, donc nous n'avons pas besoin de l'installer depuis zéro à chaque fois que nous mettons à jour l'image docker.
Par conséquent, nous avons créé une nouvelle
yamlresume/yamlresume-base,
qui est une image de base qui a Node.js et une distribution LaTeX installés. Cette
image de base est stable et ne sera pas mise à jour trop souvent, et notre image yamlresume/yamlresume
est construite au-dessus de cette image de base. Il ne faut que 3 minutes pour télécharger
l'image yamlresume/yamlresume-base
et installer le CLI yamlresume dessus,
ce qui réduit drastiquement le temps d'itération.
Support multi-plateforme
Un autre défi est de supporter les constructions multi-plateformes. Comme nous le savons, macOS M1 et plus tard sont des machines basées sur ARM. Bien qu'elles puissent exécuter des images docker avec l'architecture AMD64 par émulation, les performances sont 10 fois pires.
Par conséquent, nous devons supporter des images multi-plateformes pour yamlresume/yamlresume
.
Heureusement, docker fournit officiellement un guide détaillé sur comment construire
des images multi-plateformes dans les actions
github.
L'image docker d'YAMLResume supporte deux
plateformes : linux/amd64
et linux/arm64
, ce qui devrait être suffisant pour couvrir la plupart des machines de bureau et serveur.
Profitez d'YAMLResume avec docker !
Written by
Xiao HanyuAt
Fri Jun 06 2025