FROM composer:2.8.11@sha256:68e926a477000f12e8645e82a020b84904d49071c895c4951551fe80eed5d103 AS composer
FROM node:24.12.0-bookworm-slim@sha256:7326fb2dbdce998edd72140946851be64ef4a643e8715e138ca467e8e9d92c99 AS node

FROM php:8.4.12-cli-bookworm@sha256:f12c2232f02ba5bb9aec3b71af055979e424ef675e0be7d2a51338224a188a15

RUN apt-get update \
    && apt-get install --yes --no-install-recommends libsqlite3-dev unzip \
    && docker-php-ext-install pdo_sqlite \
    && rm -rf /var/lib/apt/lists/*

COPY --from=composer /usr/bin/composer /usr/local/bin/composer
COPY --from=node /usr/local /usr/local

WORKDIR /experiment

COPY composer.json composer.lock ./

RUN composer install \
    --no-ansi \
    --no-interaction \
    --no-progress \
    --optimize-autoloader

COPY . .

RUN mkdir -p bootstrap/cache results storage/database storage/framework/cache/data \
        storage/framework/sessions storage/framework/views storage/logs workspace \
    && chmod -R 777 bootstrap/cache results storage workspace

CMD ["node", "profile.mjs"]
