mirror of
https://github.com/meinside/rpi-mjpg-streamer.git
synced 2021-09-19 20:51:20 +03:00
Add files for docker-compose
This commit is contained in:
10
.dockerignore
Normal file
10
.dockerignore
Normal file
@@ -0,0 +1,10 @@
|
||||
.git
|
||||
.gitignore
|
||||
README.md
|
||||
run-mjpg-streamer.sh.sample
|
||||
|
||||
systemd/
|
||||
|
||||
Dockerfile
|
||||
docker-compose.yaml
|
||||
.env
|
||||
8
.env
Normal file
8
.env
Normal file
@@ -0,0 +1,8 @@
|
||||
PORT=8080
|
||||
RESOLUTION=800x600
|
||||
FPS=24
|
||||
ANGLE=0
|
||||
FLIPPED=false
|
||||
MIRRORED=false
|
||||
USERNAME=pi
|
||||
PASSWORD=raspberry
|
||||
52
Dockerfile
Normal file
52
Dockerfile
Normal file
@@ -0,0 +1,52 @@
|
||||
# Dockerfile for rpi-mjpg-streamer
|
||||
|
||||
# https://www.balena.io/docs/reference/base-images/base-images-ref/
|
||||
ARG RPI=raspberrypi3
|
||||
|
||||
FROM balenalib/$RPI-debian:latest
|
||||
|
||||
WORKDIR /
|
||||
|
||||
# install packages
|
||||
RUN apt-get update -y && \
|
||||
apt-get install -y build-essential libjpeg8-dev imagemagick libv4l-dev git cmake uvcdynctrl libraspberrypi-bin
|
||||
|
||||
# build mjpg-streamer
|
||||
RUN ln -s /usr/include/linux/videodev2.h /usr/include/linux/videodev.h && \
|
||||
git clone https://github.com/jacksonliam/mjpg-streamer && \
|
||||
cd mjpg-streamer/mjpg-streamer-experimental && \
|
||||
cmake -DCMAKE_INSTALL_PREFIX:PATH=.. . && \
|
||||
make install
|
||||
|
||||
# copy rpi-mjpg-streamer files
|
||||
COPY ./ /
|
||||
|
||||
# arguments (default values in `.env` file)
|
||||
ARG PORT
|
||||
ARG RESOLUTION
|
||||
ARG FPS
|
||||
ARG ANGLE
|
||||
ARG FLIPPED
|
||||
ARG MIRRORED
|
||||
ARG USERNAME
|
||||
ARG PASSWORD
|
||||
|
||||
# environtment variables
|
||||
ENV PORT=${PORT} \
|
||||
RESOLUTION=${RESOLUTION} \
|
||||
FPS=${FPS} \
|
||||
ANGLE=${ANGLE} \
|
||||
FLIPPED=${FLIPPED} \
|
||||
MIRRORED=${MIRRORED} \
|
||||
USERNAME=${USERNAME} \
|
||||
PASSWORD=${PASSWORD}
|
||||
|
||||
# configure
|
||||
RUN echo "{'angle': ${ANGLE}, 'flipped': ${FLIPPED}, 'mirrored': ${MIRRORED}}" \
|
||||
> /www/config.json
|
||||
|
||||
# Open ports
|
||||
EXPOSE $PORT
|
||||
|
||||
# Entry point for the built application
|
||||
ENTRYPOINT ["/run-mjpg-streamer.docker.sh"]
|
||||
21
docker-compose.yaml
Normal file
21
docker-compose.yaml
Normal file
@@ -0,0 +1,21 @@
|
||||
version: "3.7"
|
||||
services:
|
||||
streamer:
|
||||
build:
|
||||
context: .
|
||||
args:
|
||||
- PORT=${PORT}
|
||||
- RESOLUTION=${RESOLUTION}
|
||||
- FPS=${FPS}
|
||||
- ANGLE=${ANGLE}
|
||||
- FLIPPED=${FLIPPED}
|
||||
- MIRRORED=${MIRRORED}
|
||||
- USERNAME=${USERNAME}
|
||||
- PASSWORD=${PASSWORD}
|
||||
image: rpi-mjpg-streamer:latest
|
||||
devices:
|
||||
- "/dev/video0:/dev/video0"
|
||||
ports:
|
||||
- "${PORT}:${PORT}"
|
||||
restart: always
|
||||
command: run-mjpg-streamer.docker.sh
|
||||
56
run-mjpg-streamer.docker.sh
Executable file
56
run-mjpg-streamer.docker.sh
Executable file
@@ -0,0 +1,56 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Script for docker
|
||||
#
|
||||
# created by : meinside@gmail.com
|
||||
# last update: 2019.04.24.
|
||||
#
|
||||
|
||||
################
|
||||
# customize these:
|
||||
|
||||
# mjpg_streamer's install location
|
||||
MJPG_STREAMER_DIR="/mjpg-streamer"
|
||||
|
||||
# mjpg_streamer excutable's location
|
||||
MJPG_STREAMER_BIN="$MJPG_STREAMER_DIR/bin/mjpg_streamer"
|
||||
|
||||
# mjpg_streamer plugins' location
|
||||
MJPG_STREAMER_PLUGINS_DIR="$MJPG_STREAMER_DIR/lib/mjpg-streamer"
|
||||
|
||||
# streaming port
|
||||
MJPG_STREAMER_PORT=$PORT
|
||||
|
||||
# htmls and related files' location
|
||||
MJPG_STREAMER_WWW="/www"
|
||||
|
||||
# video device
|
||||
DEVICE_IN="/dev/video0"
|
||||
|
||||
# video settings
|
||||
RESOLUTION=$RESOLUTION
|
||||
FPS=$FPS
|
||||
|
||||
# authentication
|
||||
USERNAME=$USERNAME
|
||||
PASSWORD=$PASSWORD
|
||||
if [ ! -z $USERNAME ] && [ ! -z $PASSWORD ]; then
|
||||
AUTH="-c $USERNAME:$PASSWORD"
|
||||
else
|
||||
AUTH=""
|
||||
fi
|
||||
|
||||
# LED blink
|
||||
LED="off" # on/off/blink/auto (may not work on rpi camera modules)
|
||||
|
||||
# plugins
|
||||
PLUGIN_IN="$MJPG_STREAMER_PLUGINS_DIR/input_uvc.so -d $DEVICE_IN -r $RESOLUTION -f $FPS -l $LED"
|
||||
PLUGIN_OUT="$MJPG_STREAMER_PLUGINS_DIR/output_http.so -p $MJPG_STREAMER_PORT -w $MJPG_STREAMER_WWW $AUTH"
|
||||
|
||||
|
||||
|
||||
################
|
||||
# run mjpg_streamer
|
||||
$MJPG_STREAMER_BIN -i "$PLUGIN_IN" -o "$PLUGIN_OUT"
|
||||
################
|
||||
|
||||
Reference in New Issue
Block a user