Table of Contents
はじめに
このブログでも使っている、osmiumというツールがあります。このツールはNotionに書いた記事をもとにブログを構築するNext.js製のツールです。使うだけならリポジトリをフォークしてvercelのセットアップをすることで簡単に使用できます。
しかし、使っているうちに気になりポイント(RSSの生成時間)が出てきたのでコードを編集したくなりました。そのために、簡単にローカルで開発できるようにMakefileとDockerfileを作りました。
セットアップ方法
このリポジトリにMakefileとDockerfileを置いています。
本家の方ではpnpmを使っていたのですが、よく分からなかったのでとりあえずnpmで動くようにしました。
FROM node:21-bookwormARG NOTION_DATABASE_IDENV NOTION_DATABASE_ID=${NOTION_DATABASE_ID}
RUN apt update && \ apt install npm -y
WORKDIR /app最新が最高の精神のもと、nodeのバージョンは21を使っています。簡単に使いたいのでMakefileも作りました。
.PHONY: setup dev
setup: docker run -it --rm -v $(PWD):/app osmium /bin/bash -c "npm install --legacy-peer-deps" ; \ docker run -it --rm -v $(PWD):/app osmium /bin/bash -c "npm run prebuild" ; \ docker run -it --rm -v $(PWD):/app osmium /bin/bash -c "npm run postbuild"
dev: docker run -it --rm -v $(PWD):/app -p 8000:3000 osmium /bin/bash -c "npm run dev"使うためのコマンドです。イメージをビルドする時にNotionのIDを渡します。
docker build . -t osmium --build-arg NOTION_DATABASE_ID=自分のIDmake setupmake devこれでlocalhost:8000 にアクセスするとブログが表示されるはずです。
終わりに
osmiumをローカルで開発するためのDockerfileを作りました。
未知のコードの開発環境を作るという貴重な経験ができて良かったです。pnpmがよく分からずnpmに逃げたのでそこだけが悔やまれる…