mirror of
https://github.com/Cacti/cacti.git
synced 2026-10-30 08:37:01 +09:00
* 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>
80 lines
2.5 KiB
Docker
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"]
|