はじめに
このエントリは Tsurugi Advent Calendar 2023 の17日目のエントリです。前日は hishidama さんによる「 Tsurugiのdrop table 」でした。
Tsurugiに限らず、最近は手元で開発用のサーバー類を立ち上げたい場合、Dockerコンテナとして立ち上げるのが楽ですよね。簡単に環境を構築できて簡単に捨てられるので。
TsurugiももちろんDockerイメージが用意されているので簡単にサーバーを立ち上げて開発を始めることができます (公式のDockerユーザーガイドのリンク) 。 ただ自分がTsurugiのDockerコンテナを立ち上げた際にいくつか引っ掛かったことがあったので、このエントリではその内容について触れていきます。
Dockerイメージの入手と起動
TsurugiのDockerイメージは Github Container Registry 上で公開 しています。
次のように docker pull
する際に ghcr.io
を頭に付けると引っ張ってこれます。
docker pull ghcr.io/project-tsurugi/tsurugidb:latest
本エントリ執筆時点では latest
タグで 1.0.0-BETA2
が落ちてきます。
バインドするポートを指定して起動すれば、そのまま立ち上がります。
docker container run -d -p 12345:12345 --name tsurugi ghcr.io/project-tsurugi/tsurugidb:latest
TCP12345ポートで接続を受け付けるので、SQLコンソールである Tanzawa やJava APIの Iceaxe で12345ポートに接続して利用します。
設定ファイルをホスト管理する方法とその際の注意点
Dockerコンテナとしてサーバーを管理していても、設定ファイル類などはホスト側で管理したいことが多いと思います。TsurugiのDockerイメージでは設定ファイル格納ディレクトリは /usr/lib/tsurugi/var/etc
になっているので、このディレクトリをホスト側の任意のディレクトリとバインドマウントします。
docker container run -d -p 12345:12345 -v <ホスト側のパス>:/usr/lib/tsurugi/var/etc --name tsurugi ghcr.io/project-tsurugi/tsurugidb:latest
ここでまず注意点があります。 /usr/lib/tsurugi/var/etc
とバインドしたホスト側のディレクトリに設定ファイル tsurugi.ini
が配置されていないと次のようなログを残してTsurugiが起動に失敗します。
could not launch tsurugidb, as cannot find any valid configuration file
設定ファイルが存在しない状態では起動できません。そのため必ずこのディレクトリに tsurugi.ini
を配置して起動してください。
tsurugi.ini
に記載する設定項目には初期値が設定されているため、ほとんどの項目は記載しなくても動きます。ですが datastore
セクションの log_location
だけは例外で、この設定が記述されていない場合 データが永続化されません 。
ただのオンメモリデータベースになってしまい、コンテナを停止して起動すると登録したデータが失われてしまいます。
TsurugiのDockerイメージでは $TSURUGI_HOME/var/data/log
がトランザクションログの保存ディレクトリとして作られているので、次のように設定を記入してください。
[datastore] log_location=var/data/log
コンテナを削除してもデータを残す方法
コンテナとしてデータベースを利用している場合、データはコンテナ外に保存してコンテナを作り直しても継続して利用できるようにすることが多いと思います。
先にも書いたように $TSURUGI_HOME/var/data/log
がトランザクションログの保存ディレクトリであるため、このディレクトリをバインドすればいいです。次にボリューム (ここではボリュームの名前を tsurugivol
としています) にマウントする例を示します。
docker container run -d -p 12345:12345 -v tsurugivol:/usr/lib/tsurugi/var/data --name tsurugi ghcr.io/project-tsurugi/tsurugidb:latest
以上、自分が引っ掛かった経験を元に注意点をまとめました。コンテナ技術を使えばお手軽に試すことができるので、みんなどんどんTsurugiで遊んでみてください。