81 lines
2.4 KiB
Docker
81 lines
2.4 KiB
Docker
|
FROM php:8.1-alpine
|
||
|
|
||
|
ARG VERSION
|
||
|
|
||
|
|
||
|
RUN apk add --no-cache $PHPIZE_DEPS \
|
||
|
php-fpm zlib-dev libzip-dev libgomp; \
|
||
|
docker-php-ext-install intl pcntl gd exif zip pdo mysql dom; \
|
||
|
apk del $PHPIZE_DEPS; \
|
||
|
rm -rf /tmp/pear;
|
||
|
|
||
|
# Install the needed software
|
||
|
RUN apk add --no-cache sqlite nodejs git npm bash build-base supervisor curl wget nginx
|
||
|
#php8-fileinfo php8-pdo php8-tokenizer php8-dom php8-iconv php8-xml php8-simplexml \
|
||
|
#php8-sqlite3 php8-opcache php8-mbstring php8-phar php8-openssl
|
||
|
|
||
|
# Create the www-data user and group
|
||
|
#RUN set -x ; \
|
||
|
# addgroup -g 82 -S www-data ; \
|
||
|
# adduser -u 82 -D -S -G www-data www-data && exit 0 ; exit 1
|
||
|
|
||
|
# Copy supervisor conf file
|
||
|
COPY docker/supervisord.conf /etc/supervisor/conf.d/supervisord.conf
|
||
|
|
||
|
# Set default workdir
|
||
|
WORKDIR /var/www/
|
||
|
|
||
|
COPY docker/docker-entrypoint.sh .
|
||
|
|
||
|
# Decompress into Docker
|
||
|
COPY docker/uguuForDocker.tar.gz /var/www/
|
||
|
RUN mkdir /var/www/uguu
|
||
|
RUN tar -xvf uguuForDocker.tar.gz -C uguu
|
||
|
|
||
|
# Create the needed directories
|
||
|
RUN mkdir /var/www/files && \
|
||
|
mkdir /var/www/db
|
||
|
|
||
|
# Create the Sqlite DB
|
||
|
RUN sqlite3 /var/www/db/uguu.sq3 -init /var/www/uguu/src/static/dbSchemas/sqlite_schema.sql && \
|
||
|
chown -R www-data:www-data /var/www && \
|
||
|
chmod -R 775 /var/www/
|
||
|
|
||
|
# Fix script paths
|
||
|
RUN chmod a+x /var/www/uguu/src/static/scripts/checkdb.sh && \
|
||
|
chmod a+x /var/www/uguu/src/static/scripts/checkfiles.sh && \
|
||
|
sed -i 's#/path/to/files/#/var/www/uguu/files/#g' /var/www/uguu/src/static/scripts/checkfiles.sh && \
|
||
|
sed -i 's#/path/to/db/uguu.sq3#/var/www/db/uguu.sq3#g' /var/www/uguu/src/static/scripts/checkdb.sh
|
||
|
|
||
|
# Add scripts to cron
|
||
|
RUN echo "0,30 * * * * bash /var/www/uguu/src/static/scripts/checkfiles.sh" >> /var/spool/cron/crontabs/www-data && \
|
||
|
echo "0,30 * * * * bash /var/www/uguu/src/static/scripts/checkdb.sh" >> /var/spool/cron/crontabs/www-data
|
||
|
|
||
|
# Copy Nginx Server conf
|
||
|
COPY docker/nginx/uguu.conf /etc/nginx/http.d/
|
||
|
|
||
|
# Copy SSL certs
|
||
|
COPY docker/ssl /etc/ssl
|
||
|
|
||
|
# Copy PHP config
|
||
|
COPY docker/php/php.ini /etc/php8/
|
||
|
COPY docker/php/www.conf /etc/php8/php-fpm.d/
|
||
|
RUN mkdir /var/run/php
|
||
|
|
||
|
# Copy Uguu config
|
||
|
COPY src/config.json /var/www/uguu/config.json
|
||
|
|
||
|
# Give permissions to www-data
|
||
|
RUN chown -R www-data:www-data /run /var/lib/nginx /var/log/nginx /etc/nginx /etc/php8 /var/log/php8 /var/run/php
|
||
|
|
||
|
# Change user to www-data
|
||
|
USER www-data
|
||
|
|
||
|
# Expose port 80 from the container
|
||
|
EXPOSE 80
|
||
|
|
||
|
# Expose port 443 from the container
|
||
|
EXPOSE 443
|
||
|
|
||
|
# Load entrypoint
|
||
|
ENTRYPOINT [ "bash", "/var/www/docker-entrypoint.sh" ]
|