# Image for CI: PHP and Composer only, no runtime server or frontend toolchain. # Tests run against sqlite in memory (see .env.testing), so no database client # or cache extension is needed. # # Extensions here are the ext-* requirements from composer.lock that php:alpine # does not already bundle. Regenerate that list before changing this file. FROM php:8.3-alpine COPY --from=mlocati/php-extension-installer:2 /usr/bin/install-php-extensions /usr/local/bin/ RUN install-php-extensions \ pdo_sqlite \ mbstring \ dom \ xml \ fileinfo \ iconv \ pcntl \ posix # nodejs is not used by the app's tests; the Forgejo/GitHub JavaScript actions # (checkout, cache) are executed with it inside this container. RUN apk add --no-cache git unzip nodejs COPY --from=composer:2 /usr/bin/composer /usr/bin/composer