skip to content
私的歌詞倉庫

osmiumをローカルで動かすためのDockerfileを作りました

/ 3 min read

Updated:
Table of Contents

はじめに

このブログでも使っている、osmiumというツールがあります。このツールはNotionに書いた記事をもとにブログを構築するNext.js製のツールです。使うだけならリポジトリをフォークしてvercelのセットアップをすることで簡単に使用できます。

しかし、使っているうちに気になりポイント(RSSの生成時間)が出てきたのでコードを編集したくなりました。そのために、簡単にローカルで開発できるようにMakefileとDockerfileを作りました。

セットアップ方法

このリポジトリにMakefileとDockerfileを置いています。

本家の方ではpnpmを使っていたのですが、よく分からなかったのでとりあえずnpmで動くようにしました。

FROM node:21-bookworm
ARG NOTION_DATABASE_ID
ENV 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を渡します。

Terminal window
docker build . -t osmium --build-arg NOTION_DATABASE_ID=自分のID
make setup
make dev

これでlocalhost:8000 にアクセスするとブログが表示されるはずです。

終わりに

osmiumをローカルで開発するためのDockerfileを作りました。

未知のコードの開発環境を作るという貴重な経験ができて良かったです。pnpmがよく分からずnpmに逃げたのでそこだけが悔やまれる…

参考文献