# Construye Hydro desde el código fuente de este fork (no desde npm).
# Contexto de build: la raíz del repositorio (ver docker-compose.yml).
FROM node:22

ENV TZ=Europe/Madrid

WORKDIR /app
COPY . .

# Mismo flujo que la CI oficial: yarn 4 + tsc + build de producción de la UI.
# build:ui:production puede usar hasta 8 GB de RAM (el propio script fija NODE_OPTIONS).
# El tarball del código fuente se sirve en /source.tar.gz (obligación del art. 13 de la AGPL-3.0).
RUN tar -czf /tmp/source.tar.gz --exclude='./.git' --exclude='./node_modules' --exclude='./.cache' \
        --exclude='./CLAUDE.md' --exclude='./FORK_NOTES.md' --exclude='./docs' --exclude='./.claude' \
        --exclude='./.locale-work' --exclude='./install/docker/data' . && \
    yarn set version 4.13.0 && \
    yarn install && \
    yarn build && \
    yarn build:ui:production && \
    mv /tmp/source.tar.gz packages/ui-default/public/source.tar.gz && \
    yarn cache clean --all && \
    npm install -g pm2 && \
    ln -s /app/node_modules/.bin/hydrooj /usr/local/bin/hydrooj && \
    chmod +x /app/install/docker/backend/entrypoint.sh

ENTRYPOINT ["/app/install/docker/backend/entrypoint.sh"]
