Files
cacti/tests/e2e/Dockerfile
Thomas Vincent 79a9ae0351 build: raise the 1.3 floor to PHP 8.3 (#7939)
* build: raise the 1.3 floor to PHP 8.3

RHEL 10 ships 8.3 in AppStream and dropped modularity, so an 8.4 floor would
put every RHEL, Alma and Rocky 10 install on Remi. Ubuntu 24.04 is 8.3 as
well, which makes it the lowest common denominator of the current LTS fleet.

Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>

* docs: raise the documented PHP floor to 8.3

The 1.2.x column keeps 8.1, which still matches that branch's composer constraint.

Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>

* ci: run process lock coverage on PHP 8.3

* fix: finish PHP 8.3 floor cleanup

Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>

---------

Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>
2026-09-06 08:44:40 -07:00

80 lines
2.5 KiB
Docker

# +-------------------------------------------------------------------------+
# | Copyright (C) 2004-2026 The Cacti Group |
# | |
# | This program is free software; you can redistribute it and/or |
# | modify it under the terms of the GNU General Public License |
# | as published by the Free Software Foundation; either version 2 |
# | of the License, or (at your option) any later version. |
# +-------------------------------------------------------------------------+
# | Cacti: The Complete RRDtool-based Graphing Solution |
# +-------------------------------------------------------------------------+
# | http://www.cacti.net/ |
# +-------------------------------------------------------------------------+
FROM php:8.3-apache
ENV DEBIAN_FRONTEND=noninteractive
# System packages Cacti needs at runtime plus build-time extras for PHP
# extensions (gd, intl, ldap, gmp, snmp, mysqli). mariadb-client is kept so
# the entrypoint can seed the schema before Apache forks.
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
ca-certificates \
cron \
curl \
fping \
git \
libfreetype6-dev \
libgmp-dev \
libicu-dev \
libjpeg-dev \
libldap2-dev \
libpng-dev \
libsnmp-dev \
libxml2-dev \
libsqlite3-dev \
libzip-dev \
mariadb-client \
rrdtool \
snmp \
unzip \
&& docker-php-ext-configure gd --with-freetype --with-jpeg \
# sqlite3 ships built-in on php:8.3-apache (php -m already lists it) and its
# ext/sqlite3 only carries config0.m4, not config.m4, so docker-php-ext-install
# can't build it standalone; pdo_sqlite stays since libsqlite3-dev backs it.
&& docker-php-ext-install -j"$(nproc)" \
gd \
gmp \
intl \
ldap \
mysqli \
pcntl \
pdo_mysql \
pdo_sqlite \
snmp \
sockets \
zip \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
WORKDIR /var/www/html
# Copy repo contents; .dockerignore trims node_modules, .git, worktrees, etc.
COPY . /var/www/html
RUN composer install --no-interaction --prefer-dist --no-dev \
&& chown -R www-data:www-data /var/www/html \
&& a2enmod rewrite \
&& cp include/config.php.dist include/config.php
COPY tests/e2e/entrypoint.sh /usr/local/bin/cacti-entrypoint
RUN chmod +x /usr/local/bin/cacti-entrypoint
EXPOSE 80
ENTRYPOINT ["/usr/local/bin/cacti-entrypoint"]
CMD ["apache2-foreground"]