|
@@ -1,5 +1,6 @@
|
|
|
-# Container OS should have PHP and Apache already
|
|
|
|
|
-FROM php:8.2-apache
|
|
|
|
|
|
|
+# ---- Builder ----
|
|
|
|
|
+
|
|
|
|
|
+FROM php:8.3-apache AS builder
|
|
|
|
|
|
|
|
MAINTAINER at@una.io
|
|
MAINTAINER at@una.io
|
|
|
|
|
|
|
@@ -7,18 +8,14 @@ USER root
|
|
|
|
|
|
|
|
# PHP extensions and necessary packages
|
|
# PHP extensions and necessary packages
|
|
|
|
|
|
|
|
-RUN apt-get update && apt-get install -y \
|
|
|
|
|
- cron \
|
|
|
|
|
|
|
+RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
|
libfreetype6-dev \
|
|
libfreetype6-dev \
|
|
|
libjpeg62-turbo-dev \
|
|
libjpeg62-turbo-dev \
|
|
|
- libmcrypt-dev \
|
|
|
|
|
libpng-dev \
|
|
libpng-dev \
|
|
|
libwebp-dev \
|
|
libwebp-dev \
|
|
|
libonig-dev \
|
|
libonig-dev \
|
|
|
libmagickwand-dev \
|
|
libmagickwand-dev \
|
|
|
libzip-dev \
|
|
libzip-dev \
|
|
|
- sendmail sendmail-bin \
|
|
|
|
|
- unzip \
|
|
|
|
|
&& docker-php-ext-install -j$(nproc) exif \
|
|
&& docker-php-ext-install -j$(nproc) exif \
|
|
|
&& docker-php-ext-configure gd --with-freetype --with-jpeg --with-webp \
|
|
&& docker-php-ext-configure gd --with-freetype --with-jpeg --with-webp \
|
|
|
&& docker-php-ext-install -j$(nproc) gd \
|
|
&& docker-php-ext-install -j$(nproc) gd \
|
|
@@ -28,23 +25,57 @@ RUN apt-get update && apt-get install -y \
|
|
|
&& docker-php-ext-install -j$(nproc) pdo \
|
|
&& docker-php-ext-install -j$(nproc) pdo \
|
|
|
&& docker-php-ext-install -j$(nproc) pdo_mysql \
|
|
&& docker-php-ext-install -j$(nproc) pdo_mysql \
|
|
|
&& docker-php-ext-install -j$(nproc) zip \
|
|
&& docker-php-ext-install -j$(nproc) zip \
|
|
|
- && pecl install mcrypt-1.0.6 \
|
|
|
|
|
- && docker-php-ext-enable mcrypt \
|
|
|
|
|
&& pecl install imagick \
|
|
&& pecl install imagick \
|
|
|
&& docker-php-ext-enable imagick \
|
|
&& docker-php-ext-enable imagick \
|
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
|
|
|
|
|
|
+# ---- Runtime ----
|
|
|
|
|
+
|
|
|
|
|
+FROM php:8.3-apache
|
|
|
|
|
+
|
|
|
|
|
+RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
|
|
|
+ cron \
|
|
|
|
|
+ libfreetype6 \
|
|
|
|
|
+ libjpeg62-turbo \
|
|
|
|
|
+ libpng16-16 \
|
|
|
|
|
+ libwebp7 \
|
|
|
|
|
+ libonig5 \
|
|
|
|
|
+ imagemagick \
|
|
|
|
|
+ libzip5 \
|
|
|
|
|
+ unzip \
|
|
|
|
|
+ && rm -rf /var/lib/apt/lists/* /tmp/*
|
|
|
|
|
+
|
|
|
|
|
+ # Copy compiled extensions
|
|
|
|
|
+
|
|
|
|
|
+COPY --from=builder /usr/local/lib/php/extensions/ /usr/local/lib/php/extensions/
|
|
|
|
|
+COPY --from=builder /usr/local/etc/php/conf.d/ /usr/local/etc/php/conf.d/
|
|
|
|
|
+
|
|
|
|
|
+# ENV vars
|
|
|
|
|
+
|
|
|
|
|
+ENV UNA_USER="www-una" \
|
|
|
|
|
+ VAR_DEF_DB_HOST="localhost" \
|
|
|
|
|
+ VAR_DEF_DB_PORT="3306" \
|
|
|
|
|
+ VAR_DEF_DB_USER="root" \
|
|
|
|
|
+ VAR_DEF_DB_PWD="root" \
|
|
|
|
|
+ VAR_DEF_HTTP_HOST="localhost" \
|
|
|
|
|
+ VAR_DEF_TITLE="UNA" \
|
|
|
|
|
+ VAR_DEF_USERNAME="admin" \
|
|
|
|
|
+ VAR_DEF_ADMIN_PWD="admin" \
|
|
|
|
|
+ VAR_DEF_EMAIL="admin@example.com" \
|
|
|
|
|
+ VAR_DEF_DB_ENGINE="MYISAM" \
|
|
|
|
|
+ VAR_DEF_AUTO_HOSTNAME=0 \
|
|
|
|
|
+ VAR_DEF_VERSION="14.0.0" \
|
|
|
|
|
+ APACHE_RUN_USER=$UNA_USER \
|
|
|
|
|
+ APACHE_RUN_GROUP=$UNA_USER
|
|
|
|
|
+
|
|
|
# User & folder
|
|
# User & folder
|
|
|
|
|
|
|
|
-RUN groupadd -r --gid 2483 www-una \
|
|
|
|
|
- && useradd -r --uid 2483 -g www-una www-una \
|
|
|
|
|
- && chown www-una:www-una /var/www/html /var/www
|
|
|
|
|
|
|
+RUN groupadd -r --gid 2483 $UNA_USER \
|
|
|
|
|
+ && useradd -r --uid 2483 -g $UNA_USER $UNA_USER \
|
|
|
|
|
+ && chown $UNA_USER:$UNA_USER /var/www/html /var/www
|
|
|
|
|
|
|
|
# Apache configuration
|
|
# Apache configuration
|
|
|
|
|
|
|
|
-ENV APACHE_RUN_USER www-una
|
|
|
|
|
-ENV APACHE_RUN_GROUP www-una
|
|
|
|
|
-
|
|
|
|
|
RUN echo "memory_limit=192M \n\
|
|
RUN echo "memory_limit=192M \n\
|
|
|
post_max_size=100M \n\
|
|
post_max_size=100M \n\
|
|
|
upload_max_filesize=100M \n\
|
|
upload_max_filesize=100M \n\
|
|
@@ -52,10 +83,9 @@ error_log=/var/log/php/error.log \n\
|
|
|
error_reporting=E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT \n\
|
|
error_reporting=E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT \n\
|
|
|
display_errors=Off \n\
|
|
display_errors=Off \n\
|
|
|
log_errors=On \n\
|
|
log_errors=On \n\
|
|
|
-sendmail_path=/usr/sbin/sendmail -t -i \n\
|
|
|
|
|
date.timezone=UTC" > /usr/local/etc/php/conf.d/una.ini
|
|
date.timezone=UTC" > /usr/local/etc/php/conf.d/una.ini
|
|
|
|
|
|
|
|
-RUN mkdir /var/log/php && mkdir /var/www/ssl && chown www-una:www-una /var/log/php && chmod 777 /var/log/php && su www-una -c "ln -s /dev/stderr /var/log/php/error.log"
|
|
|
|
|
|
|
+RUN mkdir /var/log/php && mkdir /var/www/ssl && chown $UNA_USER:$UNA_USER /var/log/php && chmod 777 /var/log/php && su $UNA_USER -c "ln -s /dev/stderr /var/log/php/error.log; ln -s /dev/stderr /var/www/cron.log"
|
|
|
|
|
|
|
|
RUN a2enmod rewrite expires ssl
|
|
RUN a2enmod rewrite expires ssl
|
|
|
|
|
|
|
@@ -63,6 +93,21 @@ RUN a2enmod rewrite expires ssl
|
|
|
|
|
|
|
|
WORKDIR /var/www/html
|
|
WORKDIR /var/www/html
|
|
|
|
|
|
|
|
|
|
+COPY header.inc.php /srv/
|
|
|
|
|
+
|
|
|
|
|
+RUN set -eux; \
|
|
|
|
|
+ su "$UNA_USER" -c "\
|
|
|
|
|
+ curl -fSL \"http://ci.una.io/builds/UNA-v.${VAR_DEF_VERSION}.zip\" -o una.zip && \
|
|
|
|
|
+ unzip -o una.zip && \
|
|
|
|
|
+ rm una.zip && \
|
|
|
|
|
+ mv \"UNA-v.${VAR_DEF_VERSION}\"/* . && \
|
|
|
|
|
+ mv \"UNA-v.${VAR_DEF_VERSION}\"/.htaccess . && \
|
|
|
|
|
+ rm -rf \"UNA-v.${VAR_DEF_VERSION}\" && \
|
|
|
|
|
+ chmod 777 inc cache cache_public logs tmp storage && \
|
|
|
|
|
+ chmod +x plugins/ffmpeg/ffmpeg.exe && \
|
|
|
|
|
+ \\cp -f --no-preserve=mode,ownership /srv/header.inc.php install/patterns/ \
|
|
|
|
|
+ "
|
|
|
|
|
+
|
|
|
VOLUME /var/www
|
|
VOLUME /var/www
|
|
|
|
|
|
|
|
EXPOSE 80
|
|
EXPOSE 80
|
|
@@ -73,4 +118,4 @@ COPY docker-entrypoint.sh /usr/local/bin/
|
|
|
|
|
|
|
|
ENTRYPOINT ["docker-entrypoint.sh"]
|
|
ENTRYPOINT ["docker-entrypoint.sh"]
|
|
|
|
|
|
|
|
-CMD ["apache2-foreground"]
|
|
|
|
|
|
|
+CMD ["apache2-foreground"]
|