Estou super animado em anunciar que o YAMLResume agora tem uma imagem de docker, e podes executar o YAMLResume instantaneamente com docker.

Por Que Docker?
O YAMLResume é uma ferramenta CLI de Node.js e uma biblioteca. Instalar o YAMLResume em si não é difícil pois só requer Node.js. De facto, podemos mesmo compilá-lo para um binário e executá-lo diretamente sem instalar Node.js.
No entanto, o YAMLResume tem uma dependência obrigatória de LaTeX, o que traz alguns novos problemas:
- Instalar LaTeX demora tempo; geralmente demora cerca de 5–10 minutos descarregar uma distribuição LaTeX adequada e configurá-la.
- LaTeX não é um programa binário único; é uma coleção de programas. Alguns utilizadores não gostam de instalar muitos programas nas suas máquinas.
Embora já forneçamos um guia de instalação muito completo que cobre macOS, Windows, Ubuntu e RHEL, mesmo com instruções sobre como instalar o YAMLResume e o LaTeX e fazê-los funcionar juntos, o processo ainda pode ser doloroso para alguns utilizadores.
Docker é uma grande solução a estes problemas: pode empacotar tudo numa única imagem, facilitando a instalação e configuração.
Como Usar
Uma imagem vale mais que mil palavras. Aqui está uma captura de ecrã que mostra como usá-la:
A nossa imagem de docker tem tudo pré-empacotado, incluindo:
Podes criar um novo currículo instantaneamente com o seguinte comando:
docker run --rm -v $(pwd):/home/yamlresume yamlresume/yamlresume new my-resume.ymlEdita my-resume.yml em conformidade e depois constrói o currículo de YAML
para PDF:
docker run --rm -v $(pwd):/home/yamlresume yamlresume/yamlresume build my-resume.ymlSob o Capô
Se estás familiarizado com docker, provavelmente já sabes como funciona isto. Se não, aqui está uma explicação rápida:
docker run ... yamlresume/yamlresume- executa um novo contentor da imagemyamlresume/yamlresume. Se esta imagem não existir na tua máquina local, será descarregada do Docker Hub.--rm- remove automaticamente o contentor quando sai.-v $(pwd):/home/yamlresume- monta o diretório atual ($(pwd)) no contentor em/home/yamlresume, permitindo que o contentor aceda a ficheiros locais.new my-resume.ymloubuild my-resume.yml- executa o subcomando de CLI de yamlresume new ou build para criar ou construir um currículo com o nome de ficheiromy-resume.yml.
Basicamente, podes chamar todos os subcomandos CLI de yamlresume
desta forma—basta adicionar o subcomando depois de yamlresume/yamlresume e
seguir o guia de uso correspondente.
A flag -v é bastante importante porque monta o diretório atual
($(pwd)) no contentor em /home/yamlresume, permitindo a sincronização
bidirecional de ficheiros entre o diretório local e o contentor. Sem esta
flag, o artefacto de saída de construção perder-se-á depois de o
contentor sair.
Engenharia
construir uma imagem de docker não é difícil se conheceres um pouco de docker. No entanto, envolver o YAMLResume em docker não é tão fácil como parece. Aqui estão alguns dos desafios.
A Configuração de LaTeX é Tediosa
Instalar uma distribuição LaTeX funcional demora tempo; geralmente demora cerca de 5–10 minutos descarregar e configurar uma distribuição LaTeX adequada. Nos executores de GitHub Action, este processo é ainda mais longo—até mais de 20 minutos.
RUN apt update && \
apt install -y \
texlive-xetex \
texlive-fonts-extra \
texlive-lang-all \
fonts-noto-cjk \
fonts-noto-cjk-extra \Convertemo-lo num processo de 3 passos para construir a imagem de docker de yamlresume:
- Começar de uma imagem de Node.js como base.
- Instalar e configurar uma distribuição LaTeX.
- Instalar o CLI de yamlresume.
Como mencionado, o passo 2 é a parte que consome mais tempo. Se tivéssemos de começar do zero cada vez que precisássemos de atualizar a imagem de docker, demoraria 30 minutos para construir a imagem de docker num executor de ação do github.
Para evitar isto, usamos uma construção multi-etapa para cachear a distribuição LaTeX, pelo que não precisamos instalá-la do zero cada vez que atualizamos a imagem de docker.
Por isso, criamos uma nova
yamlresume/yamlresume-base,
que é uma imagem base que tem Node.js e uma distribuição LaTeX instaladas.
Esta imagem base é estável e não será atualizada com muita frequência, e
a nossa imagem yamlresume/yamlresume é construída sobre esta imagem base.
Só demora 3 minutos descarregar a imagem yamlresume/yamlresume-base e instalar
o CLI de yamlresume nela, o que reduz drasticamente o tempo de
iteração.
Suporte Multi-Plataforma
Outro desafio é suportar construções multi-plataforma. Como sabemos, macOS M1 e posteriores são máquinas baseadas em ARM. Embora possam executar imagens de docker com arquitetura AMD64 através de emulação, o desempenho é 10 vezes pior.
Por isso, temos de suportar imagens multi-plataforma para
yamlresume/yamlresume. Felizmente, o docker fornece oficialmente um
guia detalhado sobre como construir imagens multi-plataforma em ações de
github.
A imagem de docker do YAMLResume suporta duas
plataformas: linux/amd64
e linux/arm64, que devem ser suficientes para cobrir a maioria das
máquinas de desktop e servidor.
Disfruta do YAMLResume com docker!
Written by
Xiao HanyuAt
Fri Jun 06 2025