From 90001efc69283388014711a7dafacc3a4c756486 Mon Sep 17 00:00:00 2001 From: Jack Date: Sat, 26 Aug 2023 00:26:48 +0100 Subject: [PATCH] Added Motioneye --- .gitea/workflows/build.yaml | 5 +++- motioneye/build/Dockerfile | 55 +++++++++++++++++++++++++++++++++++ motioneye/build/entrypoint.sh | 6 ++++ 3 files changed, 65 insertions(+), 1 deletion(-) create mode 100644 motioneye/build/Dockerfile create mode 100644 motioneye/build/entrypoint.sh diff --git a/.gitea/workflows/build.yaml b/.gitea/workflows/build.yaml index 9e4cff8..4cc1125 100644 --- a/.gitea/workflows/build.yaml +++ b/.gitea/workflows/build.yaml @@ -20,8 +20,11 @@ jobs: run: docker build ./php-cli/ -t git.tgj.services/thatguyjack/php-cli:latest - name: Build nginx-web run: docker build ./nginx-web -t git.tgj.services/thatguyjack/nginx-web:latest + - name: Build motioneye + run: docker build ./motioneye -t git.tgj.services/thatguyjack/motioneye:latest - name: Push run: | docker push git.tgj.services/thatguyjack/php-fpm:latest docker push git.tgj.services/thatguyjack/php-cli:latest - docker push git.tgj.services/thatguyjack/nginx-web:latest \ No newline at end of file + docker push git.tgj.services/thatguyjack/nginx-web:latest + docker push git.tgj.services/thatguyjack/motioneye:latest \ No newline at end of file diff --git a/motioneye/build/Dockerfile b/motioneye/build/Dockerfile new file mode 100644 index 0000000..6677208 --- /dev/null +++ b/motioneye/build/Dockerfile @@ -0,0 +1,55 @@ +FROM debian:bullseye-slim +LABEL maintainer="Jack Brierley " + +# By default, run as root +ARG RUN_UID=0 +ARG RUN_GID=0 + +#insure git is installed +RUN apt-get update && apt install git cifs-utils -y + +#Clone and install Repo +RUN git clone -b dev https://github.com/motioneye-project/motioneye.git /tmp/motioneye +COPY entrypoint.sh /entrypoint.sh + +RUN case "$(dpkg --print-architecture)" in \ + 'armhf') PACKAGES='python3-distutils'; printf '%b' '[global]\nextra-index-url=https://www.piwheels.org/simple/\n' > /etc/pip.conf;; \ + *) PACKAGES='gcc libcurl4-openssl-dev libssl-dev python3-dev';; \ + esac && \ + apt-get -q update && \ + DEBIAN_FRONTEND="noninteractive" apt-get -qq --option Dpkg::Options::="--force-confnew" --no-install-recommends install \ + ca-certificates curl python3 fdisk $PACKAGES && \ + curl -sSfO 'https://bootstrap.pypa.io/get-pip.py' && \ + python3 get-pip.py && \ + python3 -m pip install --no-cache-dir --upgrade pip setuptools wheel && \ + python3 -m pip install --no-cache-dir /tmp/motioneye && \ + python3 -m pip install --no-cache-dir pytz && \ + motioneye_init --skip-systemd --skip-apt-update && \ + # Change uid/gid of user/group motion to match our desired IDs. This will + # make it easier to use execute motion as our desired user later. + sed -i "s/^\(motion:[^:]*\):[0-9]*:[0-9]*:\(.*\)/\1:${RUN_UID}:${RUN_GID}:\2/" /etc/passwd && \ + sed -i "s/^\(motion:[^:]*\):[0-9]*:\(.*\)/\1:${RUN_GID}:\2/" /etc/group && \ + mv /etc/motioneye/motioneye.conf /etc/motioneye.conf.sample && \ + mkdir /var/log/motioneye /var/lib/motioneye && \ + chown motion:motion /var/log/motioneye /var/lib/motioneye && \ + # Cleanup + python3 -m pip uninstall -y pip setuptools wheel && \ + DEBIAN_FRONTEND="noninteractive" apt-get -qq autopurge $PACKAGES && \ + apt-get clean && \ + rm -r /var/lib/apt/lists /var/cache/apt /tmp/motioneye get-pip.py /root/.cache + +#Set timezone + +RUN ln -snf /usr/share/zoneinfo/Europe/London /etc/localtime && echo $TZ > /etc/timezone +RUN date + + +# R/W needed for motionEye to update configurations +VOLUME /etc/motioneye + +# Video & images +VOLUME /var/lib/motioneye + +EXPOSE 8765 + +ENTRYPOINT ["/entrypoint.sh"] diff --git a/motioneye/build/entrypoint.sh b/motioneye/build/entrypoint.sh new file mode 100644 index 0000000..ab4b662 --- /dev/null +++ b/motioneye/build/entrypoint.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env sh +# We need to chown at startup time since volumes are mounted as root. This is fugly. +mkdir -p /run/motioneye +chown motion:motion /run/motioneye +[ -f '/etc/motioneye/motioneye.conf' ] || cp -a /etc/motioneye.conf.sample /etc/motioneye/motioneye.conf +exec su -g motion motion -s /bin/dash -c "LANGUAGE=en exec /usr/local/bin/meyectl startserver -c /etc/motioneye/motioneye.conf" \ No newline at end of file