-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathDockerfile.demo
76 lines (56 loc) · 2.9 KB
/
Dockerfile.demo
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
ARG auth_variation=none
FROM debian:bookworm-slim AS base
# Install system packages
RUN apt-get -qy update
RUN apt-get -qy install acl sudo logrotate python3 python3.11 >/dev/null
RUN apt-get -qy install nginx >/dev/null
# Add deb-multimedia repository (for a more recent ffmpeg)
RUN apt-get -qy install gnupg2 wget
RUN wget -q https://www.deb-multimedia.org/pool/main/d/deb-multimedia-keyring/deb-multimedia-keyring_2016.8.1_all.deb
RUN dpkg -i deb-multimedia-keyring_2016.8.1_all.deb
RUN echo "deb https://www.deb-multimedia.org bookworm main non-free" > /etc/apt/sources.list.d/deb-multimedia.list
RUN apt-get -qy update
RUN apt-get -qy install sqlite3 ffmpeg mediainfo >/dev/null
# Add regular user (to match local user ID)
ARG UID=1000
ARG GID=1000
RUN echo "### UID=${UID}, GID=${GID}"
RUN test -n "${UID}" && test -n "${GID}"
RUN groupadd -f docker --gid=${GID}
RUN useradd -m docker --uid=${UID} --gid=${GID} || true
RUN mkdir -p /mnt/clapshot-data
RUN chown -R ${UID} /mnt/clapshot-data
# Install Clapshot server & client
COPY dist_deb/*.deb /root/
RUN echo "Current architecture: $(dpkg --print-architecture)"
RUN dpkg --path-include '/usr/share/doc/*' --refuse-downgrade -i /root/*_$(dpkg --print-architecture).deb /root/*_all.deb
RUN rm -f /etc/nginx/sites-enabled/*
# ------------- no auth (default demo) -------------
FROM base AS auth-none
RUN echo "### auth-none"
RUN cp /usr/share/doc/clapshot-client/examples/clapshot.nginx.conf /etc/nginx/sites-enabled/clapshot
COPY test/docker-entry_no-auth.sh /root/docker-entry.sh
# ------------- basic auth (with PHP htadmin for management) -------------
FROM base AS base-git-php
RUN apt-get -qy install git php8.2-fpm >/dev/null
RUN mkdir -p /run/php
FROM base-git-php AS auth-htadmin
RUN echo "### auth-htadmin"
RUN cp /usr/share/doc/clapshot-client/examples/clapshot+htadmin.nginx.conf /etc/nginx/sites-enabled/clapshot
RUN git clone https://github.com/soster/htadmin.git
RUN cp -r htadmin/app/htadmin /var/www/htadmin
RUN chown -R www-data:www-data /var/www/htadmin
RUN echo "alice:J/JsbnRtaHBlc\ndemo:N7HpG2DddhtME\nadmin:KURMbfRvhQPWs" > /var/www/.htpasswd # alice:alice123, demo:demo, admin:admin
RUN chown www-data:www-data /var/www/.htpasswd
RUN mv /var/www/htadmin/config/config.ini.example /var/www/htadmin/config/config.ini
RUN sed -i 's@secure_path *=.*@secure_path = /var/www/@' /var/www/htadmin/config/config.ini
RUN sed -i 's@app_title *= .*@app_title = Clapshot users@' /var/www/htadmin/config/config.ini
RUN sed -i 's@mail_server *= .*@mail_server = localhost@' /var/www/htadmin/config/config.ini
RUN sed -i 's@admin_user *= .*@admin_user = htadmin@' /var/www/htadmin/config/config.ini
RUN sed -i 's@admin_pwd_hash *= .*@admin_pwd_hash = Askg15BrpF11g@' /var/www/htadmin/config/config.ini
COPY test/docker-entry_htadmin.sh /root/docker-entry.sh
# -------------
FROM auth-${auth_variation} AS final
WORKDIR /mnt/clapshot-data
EXPOSE 80
CMD ["bash", "/root/docker-entry.sh"]