|
|
|
@ -1,54 +1,9 @@
|
|
|
|
|
# NAME docker/php
|
|
|
|
|
# VERSION 8.4-fpm-alpine
|
|
|
|
|
# VERSION 8.4-mysql
|
|
|
|
|
|
|
|
|
|
FROM dunglas/frankenphp:php8.4-alpine
|
|
|
|
|
FROM gitea.dege.au/docker/php:8.4
|
|
|
|
|
|
|
|
|
|
# Change to http respositories, so they we can cache the install packages
|
|
|
|
|
RUN if [ -n ${HTTP_PROXY} ] ; then sed -i -e s'/https/http/' /etc/apk/repositories; fi
|
|
|
|
|
|
|
|
|
|
# Base
|
|
|
|
|
RUN apk add --no-cache bash msmtp memcached
|
|
|
|
|
|
|
|
|
|
ENV SITE_USER=www-data
|
|
|
|
|
|
|
|
|
|
# Additional extensions:
|
|
|
|
|
RUN install-php-extensions \
|
|
|
|
|
opcache igbinary msgpack memcached zip bz2 zstd brotli gd intl \
|
|
|
|
|
&& echo opcache.memory_consumption=512 >> /usr/local/etc/php/conf.d/docker-php-ext-opcache.ini \
|
|
|
|
|
&& echo opcache.interned_strings_buffer=64 >> /usr/local/etc/php/conf.d/docker-php-ext-opcache.ini \
|
|
|
|
|
&& echo opcache.max_accelerated_files=32531 >> /usr/local/etc/php/conf.d/docker-php-ext-opcache.ini \
|
|
|
|
|
&& echo opcache.fast_shutdown=1 >> /usr/local/etc/php/conf.d/docker-php-ext-opcache.ini \
|
|
|
|
|
&& echo opcache.enable_cli=1 >> /usr/local/etc/php/conf.d/docker-php-ext-opcache.ini \
|
|
|
|
|
&& mkdir /tmp/opcache && chown ${SITE_USER}:0 /tmp/opcache && chmod 750 /tmp/opcache && echo opcache.file_cache=/tmp/opcache >> /usr/local/etc/php/conf.d/docker-php-ext-opcache.ini \
|
|
|
|
|
&& echo opcache.validate_timestamps=0 >> /usr/local/etc/php/conf.d/docker-php-ext-opcache.ini
|
|
|
|
|
|
|
|
|
|
# Tune PHP
|
|
|
|
|
RUN cp /usr/local/etc/php/php.ini-production /usr/local/etc/php/php.ini
|
|
|
|
|
RUN sed -i -e 's/^memory_limit = 128M/memory_limit = 256M/' /usr/local/etc/php/php.ini
|
|
|
|
|
RUN sed -i -e 's/^expose_php = On/expose_php = Off/' /usr/local/etc/php/php.ini
|
|
|
|
|
RUN sed -i -e 's#^;sendmail_path =#sendmail_path = "/usr/bin/msmtp -t"#' /usr/local/etc/php/php.ini
|
|
|
|
|
|
|
|
|
|
# Wait for it
|
|
|
|
|
COPY wait-for-it /usr/local/bin/
|
|
|
|
|
|
|
|
|
|
# Add composer
|
|
|
|
|
RUN curl -4 https://getcomposer.org/installer|php -- --install-dir=/usr/local/bin --filename=composer
|
|
|
|
|
ENV COMPOSER_HOME=/var/cache/composer
|
|
|
|
|
|
|
|
|
|
# Other config
|
|
|
|
|
COPY msmtprc /etc/
|
|
|
|
|
|
|
|
|
|
# Startup for ${SITE_USER}
|
|
|
|
|
COPY docker/init-docker /sbin/init-docker
|
|
|
|
|
RUN chmod 550 /sbin/init-docker && chown ${SITE_USER}:0 /sbin/init-docker && chown -R ${SITE_USER}:0 ${XDG_DATA_HOME} ${XDG_CONFIG_HOME}
|
|
|
|
|
|
|
|
|
|
VOLUME [ "/var/cache/composer" ]
|
|
|
|
|
WORKDIR /app
|
|
|
|
|
USER root
|
|
|
|
|
RUN install-php-extensions pdo_mysql mysqli \
|
|
|
|
|
&& apk add --no-cache npm mysql-client
|
|
|
|
|
USER ${SITE_USER}
|
|
|
|
|
|
|
|
|
|
# Control which port to open
|
|
|
|
|
ENV SERVER_NAME=:8080
|
|
|
|
|
EXPOSE 8080
|
|
|
|
|
|
|
|
|
|
ENTRYPOINT [ "/sbin/init-docker" ]
|
|
|
|
|
CMD [ "--config","/etc/caddy/Caddyfile","--adapter","caddyfile" ]
|
|
|
|
|