]> jfr.im git - uguu.git/blame - docker/Dockerfile
fix
[uguu.git] / docker / Dockerfile
CommitLineData
e480c0e5 1FROM php:8.1-alpine
0a6585a2 2
3ARG VERSION
4
e480c0e5
GJ
5
6RUN apk add --no-cache $PHPIZE_DEPS \
7 php-fpm zlib-dev libzip-dev libgomp; \
8 docker-php-ext-install intl pcntl gd exif zip pdo mysql dom; \
9 apk del $PHPIZE_DEPS; \
10 rm -rf /tmp/pear;
11
b3c0237a 12# Install the needed software
e480c0e5
GJ
13RUN apk add --no-cache sqlite nodejs git npm bash build-base supervisor curl wget nginx
14#php8-fileinfo php8-pdo php8-tokenizer php8-dom php8-iconv php8-xml php8-simplexml \
15#php8-sqlite3 php8-opcache php8-mbstring php8-phar php8-openssl
0a6585a2 16
b3c0237a 17# Create the www-data user and group
e480c0e5
GJ
18#RUN set -x ; \
19# addgroup -g 82 -S www-data ; \
20# adduser -u 82 -D -S -G www-data www-data && exit 0 ; exit 1
b3c0237a
GJ
21
22# Copy supervisor conf file
23COPY docker/supervisord.conf /etc/supervisor/conf.d/supervisord.conf
24
25# Set default workdir
0a6585a2 26WORKDIR /var/www/
27
28COPY docker/docker-entrypoint.sh .
29
e480c0e5
GJ
30# Decompress into Docker
31COPY docker/uguuForDocker.tar.gz /var/www/
32RUN mkdir /var/www/uguu
33RUN tar -xvf uguuForDocker.tar.gz -C uguu
0a6585a2 34
b3c0237a 35# Create the needed directories
e480c0e5
GJ
36RUN mkdir /var/www/files && \
37 mkdir /var/www/db
fca51030 38
b3c0237a 39# Create the Sqlite DB
e480c0e5 40RUN sqlite3 /var/www/db/uguu.sq3 -init /var/www/uguu/src/static/dbSchemas/sqlite_schema.sql && \
b3c0237a 41 chown -R www-data:www-data /var/www && \
0a6585a2 42 chmod -R 775 /var/www/
43
b3c0237a 44# Fix script paths
e480c0e5
GJ
45RUN chmod a+x /var/www/uguu/src/static/scripts/checkdb.sh && \
46 chmod a+x /var/www/uguu/src/static/scripts/checkfiles.sh && \
47 sed -i 's#/path/to/files/#/var/www/uguu/files/#g' /var/www/uguu/src/static/scripts/checkfiles.sh && \
48 sed -i 's#/path/to/db/uguu.sq3#/var/www/db/uguu.sq3#g' /var/www/uguu/src/static/scripts/checkdb.sh
0a6585a2 49
b3c0237a 50# Add scripts to cron
e480c0e5
GJ
51RUN echo "0,30 * * * * bash /var/www/uguu/src/static/scripts/checkfiles.sh" >> /var/spool/cron/crontabs/www-data && \
52 echo "0,30 * * * * bash /var/www/uguu/src/static/scripts/checkdb.sh" >> /var/spool/cron/crontabs/www-data
b3c0237a
GJ
53
54# Copy Nginx Server conf
e480c0e5 55COPY docker/nginx/uguu.conf /etc/nginx/http.d/
b3c0237a
GJ
56
57# Copy SSL certs
58COPY docker/ssl /etc/ssl
59
e480c0e5
GJ
60# Copy PHP config
61COPY docker/php/php.ini /etc/php8/
62COPY docker/php/www.conf /etc/php8/php-fpm.d/
63RUN mkdir /var/run/php
64
b3c0237a 65# Copy Uguu config
e480c0e5 66COPY src/config.json /var/www/uguu/config.json
b3c0237a
GJ
67
68# Give permissions to www-data
e480c0e5 69RUN chown -R www-data:www-data /run /var/lib/nginx /var/log/nginx /etc/nginx /etc/php8 /var/log/php8 /var/run/php
b3c0237a
GJ
70
71# Change user to www-data
72USER www-data
0a6585a2 73
b3c0237a 74# Expose port 80 from the container
0a6585a2 75EXPOSE 80
76
ccf3370a
GJ
77# Expose port 443 from the container
78EXPOSE 443
79
b3c0237a 80# Load entrypoint
fca51030 81ENTRYPOINT [ "bash", "/var/www/docker-entrypoint.sh" ]