CinemaPress/Dockerfile

61 lines
2.9 KiB
Docker
Raw Permalink Normal View History

2020-06-04 02:11:07 +02:00
FROM alpine:3.11
2019-10-01 21:34:02 +02:00
ARG NODE_ENV="production"
ENV NODE_ENV=${NODE_ENV}
ARG CP_DOMAIN=""
ENV CP_DOMAIN=${CP_DOMAIN}
ARG CP_DOMAIN_=""
ENV CP_DOMAIN_=${CP_DOMAIN_}
ARG CP_LANG=""
ENV CP_LANG=${CP_LANG}
ARG CP_THEME=""
ENV CP_THEME=${CP_THEME}
ARG CP_PASSWD=""
ENV CP_PASSWD=${CP_PASSWD}
2020-05-01 23:43:25 +02:00
ENV CP_SPB=""
2019-10-01 21:34:02 +02:00
ARG RCLONE_CONFIG=""
ENV RCLONE_CONFIG=${RCLONE_CONFIG}
2020-01-14 04:22:07 +01:00
ENV TZ=Europe/Moscow
2019-10-01 21:34:02 +02:00
ENV LANG=en_US.UTF-8
ENV LANGUAGE=en_US.UTF-8
ENV LC_ALL=en_US.UTF-8
2019-10-08 20:29:17 +02:00
RUN mkdir -p /var/cinemapress
WORKDIR /var/cinemapress
COPY package.json /var/cinemapress/package.json
2019-10-01 21:34:02 +02:00
RUN set -o pipefail \
&& apk update \
&& apk --no-cache add --virtual .build-dependencies make g++ gcc gtk-doc gobject-introspection expat-dev glib-dev libpng-dev libjpeg-turbo-dev giflib-dev librsvg-dev \
2021-01-06 05:45:46 +01:00
&& apk add -u --no-cache sudo python wget curl tar gzip unzip git sed bash nano openrc openssl dos2unix busybox-extras tzdata grep \
&& apk add -u --no-cache npm mysql-client sphinx=2.2.11-r1 \
2019-10-01 21:34:02 +02:00
&& wget -qO - https://rclone.org/install.sh | bash \
2020-01-14 04:22:07 +01:00
&& cp /usr/share/zoneinfo/Europe/Moscow /etc/localtime \
&& echo "Europe/Moscow" > /etc/timezone \
2019-10-01 21:34:02 +02:00
&& npm i node-gyp -g \
2021-06-13 03:18:31 +02:00
&& npm i pm2@5.1.0 -g \
&& npm i cinematheme@0.0.13 -g \
2019-10-01 21:34:02 +02:00
&& npm i \
&& mkdir -p \
/var/lib/sphinx/data \
/var/local/balancer \
&& npm cache clean --force \
&& apk del .build-dependencies \
&& rm -rf /var/cache/apk/*
2019-10-08 20:29:17 +02:00
COPY . /var/cinemapress
2019-10-01 21:34:02 +02:00
RUN set -o pipefail \
2019-10-09 03:51:57 +02:00
&& rm -rf package-lock.json doc .dockerignore .gitignore .prettierignore .prettierrc Dockerfile LICENSE.txt README.md \
&& dos2unix cinemapress.sh \
&& cp cinemapress.sh /usr/bin/cinemapress && chmod +x /usr/bin/cinemapress \
2020-05-01 23:12:29 +02:00
&& rm -rf /etc/sphinx && mv config/default/sphinx /etc/sphinx \
2020-05-01 21:48:52 +02:00
&& mv node_modules/mysql node_modules/sphinx \
2019-10-09 03:51:57 +02:00
&& rm -rf cinemapress.sh \
&& cp -rf themes/default/public/admin/favicon.ico favicon.ico \
&& cp -rf themes/default/public/desktop/img/player$(( ( RANDOM % 7 ) + 1 )).png \
themes/default/public/desktop/img/player.png \
&& echo -e "#!/bin/bash\nsleep \$((60 + RANDOM % 60));\n/usr/bin/cinemapress container reindex save >> /home/\${CP_DOMAIN}/log/backup_\$(date '+%d_%m_%Y').log;\nsleep \$((30 + RANDOM % 60));\n/usr/bin/cinemapress container backup create >> /home/\${CP_DOMAIN}/log/backup_\$(date '+%d_%m_%Y').log;\nrm -f /home/\${CP_DOMAIN}/log/cron_movies.pid;\nfind /home/\${CP_DOMAIN}/log -mindepth 1 -mtime +14 -delete;" \
2019-10-01 21:34:02 +02:00
> /etc/periodic/daily/backup \
&& chmod a+x /etc/periodic/daily/backup \
2021-06-14 02:57:44 +02:00
&& echo -e "#!/bin/bash\nsleep \$((RANDOM % 300));\n/usr/bin/cinemapress container cron >> /home/\${CP_DOMAIN}/log/cron_\$(date '+%d_%m_%Y').log" \
2019-10-01 21:34:02 +02:00
> /etc/periodic/hourly/cron \
&& chmod a+x /etc/periodic/hourly/cron
2021-06-06 00:55:05 +02:00
EXPOSE 3000 3306
2020-05-01 21:48:52 +02:00
CMD ["/usr/bin/cinemapress", "container", "run"]
2021-04-29 22:13:23 +02:00
HEALTHCHECK --interval=60s --timeout=30s --start-period=30s --retries=10 CMD curl --fail http://localhost:3000/ping || exit 1