ルートとして実行せずにデバイスにアクセスできるコンテナの実行

ルートとして実行せずにデバイスにアクセスできるコンテナの実行

コンテナを運営したいですzigbee2mqtt

デバイスをコンテナにバインドする必要があります。以下を実行してください。

devices:
  - "/dev/serial/by-id/usb-Texas_Instruments_\
TI_CC2531_USB_CDC___0X00124B00194AD935-if00:/dev/ttyUSB0"

他のユーザーから始めたいです。たとえば、次のようになります。

user: "${DOCKER_UID}:${DOCKER_GID}"

ところで、エラーが発生して停止します。アクセス権が正しいようです(ユーザーを指定しないとエラーは発生しません)。エラーログがあります:

  zigbee2mqtt:info 10/27/2019, 5:18:17 PM Logging to directory: '/app/data/log/2019-10-27.17-18-17'
  zigbee2mqtt:info 10/27/2019, 5:18:18 PM Starting zigbee2mqtt version 1.6.0 (commit #e26ad2a)
  zigbee2mqtt:info 10/27/2019, 5:18:18 PM Starting zigbee-shepherd
events.js:167
      throw er; // Unhandled 'error' event
      ^

Error: Port is not open
    at SerialPort.close (/app/node_modules/zigbee-herdsman/node_modules/@serialport/stream/stream.js:425:29)
    at Znp.<anonymous> (/app/node_modules/zigbee-herdsman/dist/znp/znp.js:107:37)
    at Generator.next (<anonymous>)
    at /app/node_modules/zigbee-herdsman/dist/znp/znp.js:7:71
    at new Promise (<anonymous>)
    at __awaiter (/app/node_modules/zigbee-herdsman/dist/znp/znp.js:3:12)
    at SerialPort.serialPort.open (/app/node_modules/zigbee-herdsman/dist/znp/znp.js:103:45)
    at SerialPort._error (/app/node_modules/zigbee-herdsman/node_modules/@serialport/stream/stream.js:197:14)
    at binding.open.then.err (/app/node_modules/zigbee-herdsman/node_modules/@serialport/stream/stream.js:241:12)
Emitted 'error' event at:
    at SerialPort.onerror (_stream_readable.js:690:12)
    at SerialPort.emit (events.js:182:13)
    at SerialPort._error (/app/node_modules/zigbee-herdsman/node_modules/@serialport/stream/stream.js:199:10)
    at process.nextTick (/app/node_modules/zigbee-herdsman/node_modules/@serialport/stream/stream.js:204:31)
    at process._tickCallback (internal/process/next_tick.js:61:11)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] start: `node index.js`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the [email protected] start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

この問題を解決するためのオプション/最も良い方法は何ですか?
ユーザーにこのCC2531(Zigbeeレシーバー)へのフルアクセス許可を与えるためにセキュリティ上の問題は発生しません。

ベストアンサー1

Dockerでユーザーマッピングを実行するかどうか、および方法を覚えていません。しかし、ファイル権限のみを使用したいと思います。zigbee_deviceホストに新しいグループ()を追加し、そのグループのユーザーが読み書きできるようにデバイスの権限を設定します。次に、コンテナにそれらをグループの1つとして実行させます。

おすすめ記事