ブログ再開

諸々の関係でやったことは公開にしたほうがいいよ!というアドバイスを受けたのでブログを再開しようと思う。

手始めに2年前に作って放置していたブログ設定の手直しを…

1. やりたいこと

ギークに見えるブログを作りたい!

2. 要件

  1. ミーハーだからどうせブログやるならGitHub Pagesを使いたい!
  2. 体裁は整えたくない!
  3. buildとか自分でやってたらオペミスする!
    1. 当然環境もつらい!

3. 実現するツール

  • 要件1: GitHub Pages
    • リポジトリからビルドしてサイトを公開出来る静的サイトホスティングサービス
  • 要件1に対応
  • 要件2: hugo
    • 体裁を自分でやらずにいい感じにしてくれる静的サイトジェネレータ
      • (実は研修課題とかで触ってたし多少知ってる)
  • 要件3: GitHub Actions
    • ビルドとかテストとかをgithub上のイベントをトリガーに自動的に実行してくれるツール
      • (CI/CDの違いはよくわかってない)
  • 要件3.1: docker
    • 説明不要のコンテナ型仮想環境提供するツール

4. ブログ投稿の手順

  1. ブランチを切る
  2. リポジトリ直下でmake postをターミナル上で実行
    • 新しく投稿するネタを入れるマークダウンが/src/content/blog/yyyymmdd.mdとして生成される。
  3. 好きなことを書く
    • このときmake serve_localをターミナル上で叩く
    • localhost:1313にアクセスすることで、中身のチェックが可能
  4. コミット&プッシュ
  5. プルリクエストを投げる
  6. 実際にブログが更新される

5. どう技術が使われているか?

上のフローは裏側の技術がどう使われているかは書いていないので具体的にはmakeとプルリク・ブログ更新の裏側について補足する

  • makeコマンドの裏側
    • ここでdockerとHugoを利用している。
      • klakegg/hugoというHugoを含んだイメージを利用してすべてそのコンテナで動作させる。
    • 下記の様なMakefileでdocker上でHugoの処理をお願いするキーワード設定。
          CURRNET_DIR := $(shell pwd)
          # Hugo
          HUGO_VER := 0.101.0
          HUGO_IMG := klakegg/hugo:$(HUGO_VER)
          HUGO_CMD := docker run --rm -it \
              -v $(CURRNET_DIR):/src \
              $(HUGO_IMG)
      
          build:
              $(HUGO_CMD)
          serve_local:
              docker run --rm -it \
              -p 1313:1313 \
              -v $(CURRNET_DIR):/src \
              $(HUGO_IMG) server -D
      
          post:
              @yyyymmdd="$$(date +%Y%m%d)"; \
              $(HUGO_CMD) new blog/$${year}/$${month}/$${yyyymmdd}.md
      
  • ブログ更新の裏側
    • GitHub Actionsを使って自動的にウェブサイトが更新されるようにしている。
      • .github/workflows/actions.ymlの中身をpeaceirisにすればうまくいく。
      • 注意点はHugoのバージョンをローカルで触っているコンテナと揃えること
      • それ以外の細かいことをきにするな!
        • この記事などにあるようなGitHubの設定は必須。
        • 過去過ぎて忘れました。

7. まとめ

2年前の自分は過去の自分なので、定期的な知識のアップデート必須。

今度からはちょっと今やっている生成モデル周りのことを書くつもり。

  • 事前準備として岡谷深層学習のメモをのせるかも。