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

# Toolchain the base lacks: git for composer+npm, node for the frontend build.
# python3-setuptools provides the distutils shim that node-gyp needs on Python
# 3.12+ (distutils was removed from the stdlib); make/g++ compile node-sass.
RUN apt-get update && \
    apt-get install -y git make g++ python3 python3-setuptools && \
    curl -fsSL https://deb.nodesource.com/setup_18.x | bash - && \
    apt-get install -y nodejs && \
    rm -rf /var/lib/apt/lists/*

RUN mkdir -p /data/websites /data/certs
COPY . /data/websites/

# Decode certs
RUN base64 -d /data/websites/certs/sp-cert.crt.enc > /data/certs/sp-cert.crt && \
    base64 -d /data/websites/certs/sp-cert-prod.crt.enc > /data/certs/sp-cert-prod.crt && \
    base64 -d /data/websites/certs/sp_private_key.key.enc > /data/certs/sp_private_key.key && \
    base64 -d /data/websites/certs/sp_private_key-prod.key.enc > /data/certs/sp_private_key-prod.key && \
    rm -rf /data/websites/certs

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

WORKDIR /data/websites

RUN mkdir -p libraries/admin/logs && chmod 744 libraries/admin/logs

# SSH key
RUN mkdir /root/.ssh && \
    mv id_jenkins /root/.ssh/id_rsa && \
    chmod 400 /root/.ssh/id_rsa

# PHP deps
RUN composer install -n

WORKDIR /data/websites/engine
RUN composer install -n

# Locale generation
WORKDIR /data/websites/jobs
RUN chmod 744 /data/websites/locales && \
    chmod 755 ./init.locale.php && \
    php ./init.locale.php

# Frontend build
WORKDIR /data/websites/build
RUN npm install --force && \
    npm rebuild node-sass && \
    npm update redlabel-web-resources --force && \
    npm run prod && \
    npm run cruise && \
    rm -rf /data/websites/node_modules

WORKDIR /data

RUN chown -R www-data:www-data /data/websites
