
FROM node:24-alpine AS assets

WORKDIR /data/websites

COPY .nvmrc package.json package-lock.json ./
RUN npm ci

COPY vite.config.js ./
COPY resources/js ./resources/js

RUN npm run prod

FROM 594765360358.dkr.ecr.ca-central-1.amazonaws.com/tbi-php-85:8.5.12

RUN curl -L https://github.com/composer/composer/releases/download/2.10.3/composer.phar > /usr/local/bin/composer && \
    chmod +x /usr/local/bin/composer

COPY . /data/websites/
COPY --from=assets /data/websites/public/build /data/websites/public/build

USER root

WORKDIR /data/websites
RUN composer install
WORKDIR /var/www/html

RUN printf '%s\n' \
    'opcache.enable=0' \
    'opcache.enable_cli=0' \
    'opcache.jit=disable' \
    'opcache.jit_buffer_size=0' \
    > /usr/local/etc/php/conf.d/zz-opcache-off.ini

# Flight search exhausts the base image default of 128M. The pod limit is 512Mi.
RUN printf '%s\n' 'memory_limit=256M' > /usr/local/etc/php/conf.d/zz-memory.ini

RUN chown -R www-data:www-data /data/websites
COPY apache-dynamic.conf /etc/apache2/sites-available/000-default.conf
COPY entrypoint.sh /usr/local/bin/helix-entrypoint.sh
RUN a2enmod rewrite headers && chmod +x /usr/local/bin/helix-entrypoint.sh
ENTRYPOINT ["bash", "/usr/local/bin/helix-entrypoint.sh"]
