You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
docs/docs/docker-compose/motioneye.md

109 lines
3.5 KiB
Markdown

[Github](https://github.com/motioneye-project/motioneye)
Docker-compose:
```yaml
# Login: admin / *no password*
motioneye:
image: ccrisan/motioneye:master-amd64
container_name: motioneye
restart: always
networks:
- traefik_net
ports:
- "8081:8081"
- "8082:8082"
- "8765:8765"
security_opt:
- no-new-privileges:true
volumes:
- $DOCKERDIR_APP/motioneye/etc:/etc/motioneye
- /opt/cloud/motioneye:/var/lib/motioneye
- /etc/localtime:/etc/localtime:ro
environment:
- PUID=$PUID
- PGID=$PGID
- TZ=$TZ
labels:
- "traefik.enable=true"
## HTTP Routers
- "traefik.http.routers.motioneye-rtr.entrypoints=https"
- "traefik.http.routers.motioneye-rtr.rule=Host(`motioneye.$DOMAINNAME`)"
## Middlewares
- "traefik.http.routers.motioneye-rtr.middlewares=secure-chain@file"
## HTTP Services
- "traefik.http.routers.motioneye-rtr.service=motioneye-svc"
- "traefik.http.services.motioneye-svc.loadbalancer.server.port=8765"
```
Docker-file:
```docker
FROM debian:buster-slim
LABEL maintainer="Marcus Klein <himself@kleini.org>"
ARG BUILD_DATE
ARG VCS_REF
LABEL org.label-schema.build-date=$BUILD_DATE \
org.label-schema.docker.dockerfile="extra/Dockerfile" \
org.label-schema.license="GPLv3" \
org.label-schema.name="motioneye" \
org.label-schema.url="https://github.com/ccrisan/motioneye/wiki" \
org.label-schema.vcs-ref=$VCS_REF \
org.label-schema.vcs-type="Git" \
org.label-schema.vcs-url="https://github.com/ccrisan/motioneye.git"
# By default, run as root.
ARG RUN_UID=0
ARG RUN_GID=0
COPY . /tmp/motioneye
RUN echo "deb http://snapshot.debian.org/archive/debian/$(date +%Y%m%d) buster contrib non-free" >>/etc/apt/sources.list && \
apt-get update && \
DEBIAN_FRONTEND="noninteractive" apt-get -t buster --yes --option Dpkg::Options::="--force-confnew" --no-install-recommends install \
curl \
ffmpeg \
libmicrohttpd12 \
libpq5 \
lsb-release \
mosquitto-clients \
python-jinja2 \
python-pil \
python-pip \
python-pip-whl \
python-pycurl \
python-setuptools \
python-tornado \
python-tz \
python-wheel \
v4l-utils \
motion \
default-libmysqlclient-dev && \
# 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 -e "s/^\(motion:[^:]*\):[0-9]*:[0-9]*:\(.*\)/\1:${RUN_UID}:${RUN_GID}:\2/" /etc/passwd && \
sed -i -e "s/^\(motion:[^:]*\):[0-9]*:\(.*\)/\1:${RUN_GID}:\2/" /etc/group && \
pip install /tmp/motioneye && \
# Cleanup
rm -rf /tmp/motioneye && \
apt-get purge --yes python-setuptools python-wheel && \
apt-get autoremove --yes && \
apt-get --yes clean && rm -rf /var/lib/apt/lists/* && rm -f /var/cache/apt/*.bin
ADD extra/motioneye.conf.sample /usr/share/motioneye/extra/
# R/W needed for motioneye to update configurations
VOLUME /etc/motioneye
# Video & images
VOLUME /var/lib/motioneye
CMD test -e /etc/motioneye/motioneye.conf || \
cp /usr/share/motioneye/extra/motioneye.conf.sample /etc/motioneye/motioneye.conf ; \
# We need to chown at startup time since volumes are mounted as root. This is fugly.
chown motion:motion /var/run /var/log /etc/motioneye /var/lib/motioneye /usr/share/motioneye/extra ; \
su -g motion motion -s /bin/bash -c "/usr/local/bin/meyectl startserver -c /etc/motioneye/motioneye.conf"
EXPOSE 8765
```