ikasama over technology

忘れたくないことを忘れないために

YAML で履歴書を作るを Docker 環境でやってみた

  • 最近、転職を考えるようになっていろいろ行動し始めた
  • 履歴書や職務経歴書を要求される場面が増えてきた
  • 以前転職したときはインターネットのどこかでダウンロードした Microsoft Word のテンプレートで作成したものを PDF に変換して使ってた
  • 必要な情報をアップデートしたらそれだけで履歴書を更新できるような仕組みにしたい
  • いい感じのがある

qiita.com

というわけで、さっそくやっていきましょう。

実行環境

必要なライブラリ等 にあるように、 Prawn と IPAex フォントがあれば動きます。 あと Ruby の Script なので当然 Ruby も。

これくらい軽量ならサクッとローカル環境にインストールしてしまってもいい気がするんですが、せっかくなので実行環境を Docker 化してみました。

2023/09/24 追記

本家の変更に追従しやすくするよう、本家を Fork したリポジトリに追加する形に変更し、docker-yaml_cv はアーカイブしました。 以降はこちらを利用ください。

github.com

$ docker compose up
[+] Running 1/0
 ✔ Container yaml_cv-app-1  Created                                                                                                                                                                                                                                                       0.0s 
Attaching to yaml_cv-app-1
yaml_cv-app-1  | ruby make_cv.rb -i data.yaml -s style.txt -o output.pdf
yaml_cv-app-1  | Calling `DidYouMean::SPELL_CHECKERS.merge!(error_name => spell_checker)' has been deprecated. Please call `DidYouMean.correct_error(error_name, spell_checker)' instead.
yaml_cv-app-1  | input  file: data.yaml
yaml_cv-app-1  | style  file: style.txt
yaml_cv-app-1  | output file: output.pdf
yaml_cv-app-1  | Done.
yaml_cv-app-1 exited with code 0

これだけで動く! 簡単!

▶以前の内容

github.com

git clone したディレクトリ内でさらに kaityo256/yaml_cvgit clone し、 docker-compose up します。

$ docker-compose up
Creating network "dockeryamlcv_default" with the default driver
Building make_cv
Step 1/5 : FROM ruby:alpine
 ---> 8ea9c590ec75
... 省略 ...
make_cv_1  | input  file: data.yaml
make_cv_1  | style  file: style.txt
make_cv_1  | output file: /output/output.pdf
make_cv_1  | Done.
dockeryamlcv_make_cv_1 exited with code 0
$ ls -l output.pdf
-rw-r--r--. 1 root     root     109173 Jan 28 05:51 output.pdf

しかし、 JIS 規格の履歴書とやらは冗長だ

資格や通勤時間といった情報はともかく、趣味・特技や志望動機なんて履歴書に必要なのか?

履歴書の 2 ページ目

ということで、 fork して A4 1 ページに収まるスタイルも作ってしまいました。

github.com

A4 1 ページで収まるスタイル

課題

スクリプトを Dokcer で動かすため、出力される PDF のファイルオーナーが root になってしまいます。 これは fixuid というものを使えば解決できそうです。

bufferings.hatenablog.com

まとめ

謝辞

@kaityo256 さんありがとう!

参考