FROM mcr.microsoft.com/playwright:v1.61.1-noble@sha256:5b8f294aff9041b7191c34a4bab3ac270157a28774d4b0660e9743297b697e48 AS assets

WORKDIR /experiment

COPY package.json package-lock.json build.mjs ./
COPY assets ./assets

RUN npm ci --ignore-scripts \
    && npm run build

FROM composer:2.8.11@sha256:68e926a477000f12e8645e82a020b84904d49071c895c4951551fe80eed5d103 AS composer

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

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

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

WORKDIR /experiment

COPY composer.json composer.lock ./

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

COPY . .
COPY --from=assets /experiment/public/app.js public/app.js

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