如何在Docker构建中授予创建的用户访问/ dev *的权限?

时间:2020-08-10 00:35:01

标签: docker permissions

我试图在启动时在Docker实例中的bash脚本中运行VLC Player(cvlc)的命令行版本。 VLC Player将无法以root用户身份运行,因此已创建了一个用户来运行它(有效)。

在Raspberry Pi 3B +上运行,将通过/dev/video0访问连接的相机。剩下的步骤是授予用户访问/dev/video0的权限,以便它可以从该源流式传输视频。

Docker.compose

version: '2'
services:
  server:
    privileged: true
    build: .
    ports:
      - "8090:8090"

Dockerfile.template

FROM balenalib/%%BALENA_MACHINE_NAME%%-node

# Install dependencies
RUN install_packages build-essential vlc

RUN useradd -m vlcuser

WORKDIR /usr/src/app

# This will copy all files in our root to the working  directory in the container
COPY . ./

# Enable udevd so that plugged dynamic hardware devices show up in our container.
ENV UDEV=1

# server.js will run when container starts up on the device
CMD ["/bin/bash", "/usr/src/app/start.sh"]

start.sh

su vlcuser -c "cvlc v4l2:///dev/video0 --v4l2-width 800 --v4l2-height 600 --v4l2-chroma h264 --sout '#standard{access=http,mux=ts,dst=0.0.0.0:8090}' -vvv"

我当前遇到的错误:

v4l2 stream error: cannot open device '/dev/video0': Permission denied

如何在提供的Dockerfile.template中授予权限?

0 个答案:

没有答案