録画サーバの構築を少しずつ進めています。
dockerを使って、mirakurun,chinachu,epgstationの構成は動作しました。ただ、epgstationは使い慣れていないのでchinachuへの変更を試みています。
けど、chinachuがうまく動かないです。
活用しているコード
活用させていただいているのはこちら。先人の知恵に感謝。
でも、動かない。。。
状況
番組表は取得できているのですが、録画しようとすると以下のように「予約に失敗しました(500)」と表示されて録画できないのです。
以下のようにOperatorが停止しているという状態です。
動いているchinahuの状態
ネイティブ(dockerではない)で動いているのは、以下のようなログが出力されています。
19 Dec 03:15:44 - STREAM: ./log/scheduler 19 Dec 03:15:44 - EXIT: node app-scheduler.js (pid=17007) 19 Dec 03:15:45 - READ: `/home/chinachu/chinachu/data/reserves.json` is updated. 19 Dec 03:25:44 - SPAWN: node app-scheduler.js (pid=18822) 19 Dec 03:25:44 - STREAM: ./log/scheduler 19 Dec 03:25:44 - EXIT: node app-scheduler.js (pid=18822) 19 Dec 03:25:45 - READ: `/home/chinachu/chinachu/data/reserves.json` is updated. 19 Dec 03:35:44 - SPAWN: node app-scheduler.js (pid=20234) 19 Dec 03:35:44 - STREAM: ./log/scheduler 19 Dec 03:35:44 - EXIT: node app-scheduler.js (pid=20234) 19 Dec 03:35:45 - READ: `/home/chinachu/chinachu/data/reserves.json` is updated.
動いていない理由:コンテナが起動していない?
起動状態を確認すると、以下のようになっています。
operatorとして起動するコンテナ「d558ef26dc99」は「 Exited (0) 2 minutes ago 」とあまり見慣れない表示になっています。
# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES e8d130237343 yakumosaki/chinachu:latest "/dumb-init -- bash …" 2 minutes ago Up 2 minutes 5353/tcp, 0.0.0.0:10772->10772/tcp, 20772/tcp, 0.0.0.0:50772->50772/tcp docker-chinachu_wui_1 d558ef26dc99 yakumosaki/chinachu:latest "/dumb-init -- bash …" 2 minutes ago Exited (0) 2 minutes ago docker-chinachu_operator_1
コンテナに入れるかどうかを試してみると、「Container d558ef26dc9995984be560e8b418c914dc229519a50b2672cf6663885101b9b2 is not running」と動いていないことになっています。
# docker exec -it d558ef26dc99 bash Error response from daemon: Container d558ef26dc9995984be560e8b418c914dc229519a50b2672cf6663885101b9b2 is not running
operatorだけ単独で動かすと
以下のように「uncaughtException: Error: EACCES: permission denied, open '/usr/local/chinachu/data/recording.json'」となっています。permissionエラーです。
Attaching to docker-chinachu_operator_1 operator_1 | Client { operator_1 | basePath: '/api', operator_1 | docsPath: '/docs', operator_1 | priority: 2, operator_1 | host: '192.168.1.254', operator_1 | port: '40772', operator_1 | socketPath: '/var/run/mirakurun.sock', operator_1 | userAgent: 'Chinachu/0.10.2-gamma.0 (operator)', operator_1 | _userAgent: 'MirakurunClient/2.15.2 Node/v10.16.3 (linux)' } operator_1 | uncaughtException: Error: EACCES: permission denied, open '/usr/local/chinachu/data/recording.json' operator_1 | at Object.openSync (fs.js:443:3) operator_1 | at Object.writeFileSync (fs.js:1194:35) operator_1 | at Object.<anonymous> (/usr/local/chinachu/app-operator.js:118:4) operator_1 | at Module._compile (internal/modules/cjs/loader.js:778:30) operator_1 | at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10) operator_1 | at Module.load (internal/modules/cjs/loader.js:653:32) operator_1 | at tryModuleLoad (internal/modules/cjs/loader.js:593:12) operator_1 | at Function.Module._load (internal/modules/cjs/loader.js:585:3) operator_1 | at Function.Module.runMain (internal/modules/cjs/loader.js:831:12) operator_1 | at startup (internal/bootstrap/node.js:283:19) docker-chinachu_operator_1 exited with code 0
これが原因かもしれないです。もう少し調べるとします。