-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmotion.Dockerfile
61 lines (43 loc) · 1.67 KB
/
motion.Dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
FROM alpine:3.19
ARG SG_API_KEY="unknown"
ARG FROM_EMAIL="unknown"
ARG TO_EMAIL="unknown"
ARG MOTION_CONF_FILE="motion-full.conf"
ARG IR_CAM_URL="unknown"
ARG IR_CAM_USER="unknown"
ARG IR_CAM_PASS="unknown"
ARG EMAIL_SCRIPT="send-email-smtp.py"
ARG EMAIL_PASSWORD="unknown"
ARG MOTION_PRIVKEY
ARG SERVER_PUBKEY
ARG SERVER_URL
ARG MOTION_WG_IP
ENV SG_API_KEY=${SG_API_KEY}
ENV FROM_EMAIL=${FROM_EMAIL}
ENV TO_EMAIL=${TO_EMAIL}
ENV IR_CAM_URL=$IR_CAM_URL
ENV IR_CAM_USER=$IR_CAM_USER
ENV IR_CAM_PASS=$IR_CAM_PASS
ENV MOTION_PRIVKEY=$MOTION_PRIVKEY
ENV SERVER_PUBKEY=$SERVER_PUBKEY
ENV SERVER_URL=$SERVER_URL
ENV MOTION_WG_IP=$MOTION_WG_IP
ENV EMAIL_SCRIPT=$EMAIL_SCRIPT
ENV EMAIL_PASSWORD=$EMAIL_PASSWORD
# enable testing repository, which we need for motion
RUN echo "@testing https://dl-cdn.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories
RUN apk add --update motion@testing ffmpeg python3 py-pip gettext-envsubst wireguard-tools-wg wireguard-tools-wg-quick
WORKDIR /tmp
COPY send-email.py /usr/sbin/
COPY send-email-smtp.py /usr/sbin/
RUN chmod +x /usr/sbin/send-email.py && chmod +x /usr/sbin/send-email-smtp.py
COPY requirements.txt /tmp/
RUN pip3 install --break-system-packages -r requirements.txt
COPY motion-conf /etc/motion/template
ENV MOTION_CONF_FILE=$MOTION_CONF_FILE
RUN cd /etc/motion/template && for file in `ls`; do echo "Subbed $file:"; envsubst < $file | tee ../$file; done
RUN mv /etc/motion/$MOTION_CONF_FILE /etc/motion/motion.conf
COPY entrypoint.sh /bin/entrypoint.sh
COPY wgconf/motion-full.conf /etc/wireguard/wg0.conf.template
RUN envsubst < /etc/wireguard/wg0.conf.template > /etc/wireguard/wg0.conf
ENTRYPOINT ["/bin/sh","-c", "/bin/entrypoint.sh"]