我试图在启动时在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中授予权限?