111 lines
3.0 KiB
Docker
111 lines
3.0 KiB
Docker
# Load php-apache
|
|
FROM php:8.2-apache
|
|
|
|
# Set working directory
|
|
WORKDIR /var/www/html
|
|
|
|
# Load args
|
|
ARG UWUZU_SOURCE_TAG
|
|
ARG UWUZU_SOURCE_URL
|
|
ARG UWUZU_SOURCE_FILENAME
|
|
ARG UWUZU_PLUGIN_PHPMAILER_URL
|
|
ARG UWUZU_PLUGIN_PHPMAILER_FILENAME
|
|
ARG UWUZU_PLUGIN_WATERMARK_TAG
|
|
ARG UWUZU_PLUGIN_WATERMARK_URL
|
|
ARG UWUZU_PLUGIN_WATERMARK_FILENAME
|
|
ARG UWUZU_PLUGIN_OBJECTSTG_TAG
|
|
ARG UWUZU_PLUGIN_OBJECTSTG_URL
|
|
ARG UWUZU_PLUGIN_OBJECTSTG_FILENAME
|
|
|
|
# Run as root
|
|
USER root
|
|
|
|
# Install packages(apt)
|
|
RUN apt-get update
|
|
RUN apt-get install -y wget
|
|
RUN apt-get install -y dos2unix
|
|
RUN apt-get install -y libexif-dev
|
|
RUN apt-get install -y libwebp-dev
|
|
RUN apt-get install -y libpng-dev
|
|
RUN apt-get install -y libjpeg-dev
|
|
RUN apt-get install -y libfreetype6-dev
|
|
RUN apt-get install -y libonig-dev
|
|
RUN apt-get install -y libzip-dev
|
|
RUN apt-get install -y libcurl4-openssl-dev
|
|
RUN apt-get install -y zip
|
|
RUN apt-get install -y unzip
|
|
RUN apt-get install -y curl
|
|
RUN apt-get clean
|
|
RUN rm -rf /var/lib/apt/lists/*
|
|
|
|
# Copy app
|
|
COPY src/ /var/www/html/
|
|
|
|
# Auto download
|
|
RUN if [ -d /var/www/html ]; then \
|
|
count=$(find /var/www/html -mindepth 1 -maxdepth 1 | wc -l); \
|
|
if [ "$count" -le 1 ]; then \
|
|
# uwuzu
|
|
wget -O uwuzu.zip ${UWUZU_SOURCE_URL}/${UWUZU_SOURCE_TAG}/${UWUZU_SOURCE_FILENAME}; \
|
|
unzip uwuzu.zip; \
|
|
rm -f uwuzu.zip; \
|
|
# Plugins
|
|
cd plugin; \
|
|
## Mailer
|
|
wget -O mailer.zip ${UWUZU_PLUGIN_PHPMAILER_URL}/${UWUZU_PLUGIN_PHPMAILER_FILENAME}; \
|
|
unzip mailer.zip; \
|
|
mv PHPMailer-* PHPMailer; \
|
|
rm -f mailer.zip; \
|
|
## AIBlockWaterMark
|
|
mkdir AIBlockWaterMark; \
|
|
cd AIBlockWaterMark; \
|
|
wget -O watermark.zip ${UWUZU_PLUGIN_WATERMARK_URL}/${UWUZU_PLUGIN_WATERMARK_TAG}/${UWUZU_PLUGIN_WATERMARK_FILENAME}; \
|
|
unzip watermark.zip; \
|
|
rm -f watermark.zip; \
|
|
cd ..; \
|
|
## Object Storage
|
|
mkdir aws; \
|
|
cd aws; \
|
|
wget -O aws.zip ${UWUZU_PLUGIN_OBJECTSTG_URL}/${UWUZU_PLUGIN_OBJECTSTG_TAG}/${UWUZU_PLUGIN_OBJECTSTG_FILENAME}; \
|
|
unzip aws.zip; \
|
|
rm -f aws.zip; \
|
|
cd ..; \
|
|
## Change Directory
|
|
cd ..; \
|
|
fi; \
|
|
fi
|
|
|
|
# Remove flag
|
|
RUN rm -f .source-flag
|
|
|
|
# Change line break code
|
|
RUN find /var/www/html -type f -exec dos2unix {} \;
|
|
|
|
# Install PHP extensions
|
|
RUN docker-php-ext-configure gd --with-freetype --with-webp --with-jpeg
|
|
RUN docker-php-ext-install gd
|
|
RUN docker-php-ext-install pdo_mysql
|
|
RUN docker-php-ext-install mysqli
|
|
RUN docker-php-ext-install mbstring
|
|
RUN docker-php-ext-install exif
|
|
RUN docker-php-ext-install zip
|
|
RUN docker-php-ext-install fileinfo
|
|
RUN docker-php-ext-install curl
|
|
|
|
# Enable Apache modules
|
|
RUN a2enmod rewrite
|
|
RUN a2enmod headers
|
|
|
|
# Copy custom configuration
|
|
COPY php/php.ini /usr/local/etc/php/conf.d/99-custom.ini
|
|
COPY php/apache2.conf /etc/apache2/conf-enabled/99-custom.conf
|
|
|
|
# Set permissions
|
|
RUN chown -R www-data:www-data /var/www/html
|
|
RUN find /var/www/html -type d -exec chmod 775 {} \;
|
|
RUN find /var/www/html -type f -exec chmod 775 {} \;
|
|
RUN chmod 775 /var/www/html
|
|
|
|
# Start Apache
|
|
CMD ["apache2-foreground"]
|