podman で MariaDB を動かす

さて、先日から格闘している podman の続きです。cakephp5 を動かす pod を作成すべく作業をしているわけですが、本日は MariaDB 編です。

MariaDB を動かすには root ユーザーのパスワードやらを渡す必要があるのですが、ネットを検索するとコマンドラインで -e で環境変数を指定するスタイルが多く見つかります。個人的に長過ぎるコマンドラインは好きではないので (読み取るのも打つのも大変なので) 環境変数は別ファイルで逃がす形にします。

MARIADB_ROOT_PASSWORD=caddy-cake-PASSWORD
MARIADB_DATABASE=cake
MARIADB_USER=cake
MARIADB_PASSWORD=cake-user-PASSWORD
TZ='Asia/Tokyo'

なんとなく見てわかるとおりと思うので実際のパスワードやなんかはお好みで変えてください。

起動するには、env ファイルのあるディレクトリで以下のようにします。(前提条件として docker Hub registry のセットアップは終わっているものとします。)

podman run -d --name maria \
	--env-file ./env \
	-v ./maria/data:/var/lib/mysql \
	-p 3306:3306/tcp \
	--userns keep-id \
	mariadb:11.3 

MariaDB のデータはホスト側のファイルシステムに直接リンクしてます。その際 –userns keep-id がないとコンテナ内に割り当てられた uid (100239 とか大きな値になる)がファイルオーナーになるので嬉しくないです。

–userns keep-id をつけると ./maria/data が自分の所有になるのでいい感じです。

まだ不慣れなのもあるのですが、どうも docker-desktop と異なり podman-desktop は cli で指定できるオプションがだいぶ削られているような気がします。(お前がわかっていないだけという可能性も否定できないですが。。。)

しばらく続きます。

podman run -d –name maria \
–env-file ./env \
-v ./maria/data:/var/lib/mysql \
-p 3306:3306/tcp \
–userns keep-id \
mariadb:11.3