[Mac] Docker で motionEye をインストールする
僕は2台の Raspberry Pi に motionEye をインストールし、自宅の監視カメラシステムを構築している。
motioneye-project/motioneye: A web frontend for the motion daemon.
https://github.com/motioneye-project/motioneye
しかしたとえ Raspberry Pi 4 であっても、動体検知時のスクリプト実行まで少しタイムラグがある。
そこで、USB カメラを接続した Raspberry Pi は映像のストリーミングのみを行い、動体検知および画像と映像の保存は別のマシンを使うことにした。
最初は別の Raspberry Pi 4 を使おうかと思ったが、motionEye に Docker 版があることを知った。それなら、サーバーとして使っている Mac mini の Docker を使ってみることにした。古い Mac mini だが、動体検知からスクリプト実行までのリスポンスが早いようなら本格運用することにしたい。
ということで、Mac mini の Docker に motionEye をインストールする方法をメモしておく。
(1)Docker をインストールする。
(2)Docker のタイムゾーン設定の関係で、Docker の環境設定の共有フォルダに「/var/db」を追加しておく。
(3)motionEye 用の設定ファイル、そしてメディアファイルを保存するフォルダを作っておく。
(4)以下のコマンドで motionEye を起動する。
$ docker run --name="motioneye" \
-p 8765:8765 \
--hostname="motioneye" \
-v /var/db/timezone/zoneinfo/Asia/Tokyo:/etc/localtime:ro \
-v {設定ファイル用フォルダへのパス}:/etc/motioneye \
-v {メディアファイル用フォルダへのパス}:/var/lib/motioneye \
--restart="always" \
--detach=true \
ccrisan/motioneye:master-amd64
これで http://{IPアドレス}:8765/ にアクセスし、motionEye が利用できるようになっていることを確認できるはずだ。ユーザー名は admin 、パスワードは空白でログインできる。
あとはウェブカメラを接続した Raspberry Pi の motionEye をカメラとして登録すればいい。
Docker をインストールした Mac mini 自体にウェブカメラを接続する場合はまた別の設定が必要になるはず。
参考:
Install In Docker · motioneye-project/motioneye Wiki
https://github.com/motioneye-project/motioneye/wiki/Install-In-Docker
Mac OSのDockerで/etc/localtimeがマウントできなくなって困った話 - A1 Blog
https://blog.a-1.dev/post/2019-04-13-docker-mount/
Dockerで、ホスト側のフォルダをコンテナにマウントする | mokelab tech sheets
https://tech.mokelab.com/infra/docker/mount_local.html