mirror of
https://github.com/EdyTheCow/docker-whmcs.git
synced 2026-04-02 18:58:18 +00:00
- Removed old and unused packages - Optimized Dockerfile steps (image is over 100mb smaller now) - Updated PHP version - Optimized whmcs.ini config - Cleaner Dockerfile using a helper to install and configure needed packages - Now using www-data user instead of root
This commit is contained in:
@@ -1,58 +1,28 @@
|
||||
FROM php:8.1-fpm
|
||||
ENV DEBIAN_FRONTEND noninteractive
|
||||
FROM php:8.3-fpm-bookworm
|
||||
|
||||
# Fetch the helper
|
||||
ADD --chmod=0755 https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions /usr/local/bin/
|
||||
|
||||
# Install all WHMCS required extensions
|
||||
RUN set -eux; \
|
||||
apt-get update; \
|
||||
apt-get install -y --no-install-recommends \
|
||||
libzip-dev \
|
||||
zip \
|
||||
curl \
|
||||
libmemcached-dev \
|
||||
libz-dev \
|
||||
libpq-dev \
|
||||
libjpeg-dev \
|
||||
libpng-dev \
|
||||
libfreetype6-dev \
|
||||
libmcrypt-dev; \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
install-php-extensions \
|
||||
bcmath gd gmp imap intl mbstring mysqli pdo_mysql soap zip
|
||||
|
||||
# Install additional PHP Packages and WHMCS Requirements
|
||||
RUN docker-php-ext-configure zip && \
|
||||
docker-php-ext-install zip pdo_mysql mysqli
|
||||
# ionCube
|
||||
RUN set -eux; \
|
||||
arch="$(uname -m)"; case "$arch" in x86_64|amd64) a="x86-64";; aarch64|arm64) a="aarch64";; *) echo "Unsupported $arch"; exit 1;; esac; \
|
||||
curl -fsSL "https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_${a}.tar.gz" -o /tmp/ioncube.tar.gz; \
|
||||
tar -xzf /tmp/ioncube.tar.gz -C /tmp; \
|
||||
php_minor="$(php -r 'echo PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')"; \
|
||||
ext_dir="$(php -r 'echo ini_get("extension_dir");')"; \
|
||||
cp "/tmp/ioncube/ioncube_loader_lin_${php_minor}.so" "${ext_dir}/"; \
|
||||
echo "zend_extension=ioncube_loader_lin_${php_minor}.so" > /usr/local/etc/php/conf.d/00-ioncube.ini; \
|
||||
rm -rf /tmp/ioncube*
|
||||
|
||||
RUN docker-php-ext-configure gd \
|
||||
--prefix=/usr \
|
||||
--with-jpeg \
|
||||
--with-webp \
|
||||
--with-freetype; \
|
||||
docker-php-ext-install gd; \
|
||||
php -r 'var_dump(gd_info());'
|
||||
COPY ./whmcs.ini /usr/local/etc/php/conf.d/zz-whmcs.ini
|
||||
COPY ./xwhmcs.pool.conf /usr/local/etc/php-fpm.d/zz-whmcs.conf
|
||||
|
||||
RUN apt-get update -yqq && \
|
||||
apt-get install -y zlib1g-dev libicu-dev g++ && \
|
||||
docker-php-ext-configure intl && \
|
||||
docker-php-ext-install intl
|
||||
|
||||
RUN rm /etc/apt/preferences.d/no-debian-php && \
|
||||
apt-get -y install libxml2-dev php-soap && \
|
||||
docker-php-ext-install soap;
|
||||
|
||||
# Install the php ioncube loader (essential part to run WHMCS)
|
||||
RUN cd /tmp \
|
||||
&& curl -o ioncube.tar.gz https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz \
|
||||
&& tar zxpf ioncube.tar.gz \
|
||||
&& mv ioncube/ioncube_loader_lin_8.1.so /usr/local/lib/php/extensions/* \
|
||||
&& rm -Rf ioncube.tar.gz ioncube \
|
||||
&& echo "zend_extension=ioncube_loader_lin_8.1.so" > /usr/local/etc/php/conf.d/docker-php-ext-ioncube_loader.ini \
|
||||
&& rm -rf /tmp/ioncube*
|
||||
|
||||
COPY ./whmcs.ini /usr/local/etc/php/conf.d
|
||||
COPY ./xwhmcs.pool.conf /usr/local/etc/php-fpm.d/
|
||||
COPY ./php.ini /usr/local/etc/php/php.ini
|
||||
|
||||
USER root
|
||||
RUN usermod -u 1000 www-data
|
||||
USER www-data
|
||||
WORKDIR /var/www
|
||||
|
||||
CMD ["php-fpm"]
|
||||
EXPOSE 9000
|
||||
EXPOSE 9000
|
||||
CMD ["php-fpm"]
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,13 +1,11 @@
|
||||
date.timezone=UTC
|
||||
display_errors=Off
|
||||
log_errors=On
|
||||
; Minimums and sensible production defaults for WHMCS
|
||||
memory_limit = 256M
|
||||
upload_max_filesize = 50M
|
||||
post_max_size = 50M
|
||||
max_execution_time = 120
|
||||
date.timezone = UTC
|
||||
expose_php = Off
|
||||
|
||||
memory_limit = 1024M
|
||||
upload_max_filesize = 20M
|
||||
post_max_size = 20M
|
||||
|
||||
max_execution_time=600
|
||||
default_socket_timeout=3600
|
||||
request_terminate_timeout=600
|
||||
|
||||
opcache.enable=0
|
||||
# Disable OPcache, official recommendation from version 8.13 of WHMCS
|
||||
# Source: https://docs.whmcs.com/8-13/troubleshooting/troubleshoot-php/opcache-warnings/
|
||||
opcache.enable=0
|
||||
Reference in New Issue
Block a user