# Base Debian (não Alpine): precisamos do pacote "assimp-utils" (binário
# `assimp`) para converter os FBX reais do Z-Anatomy para glTF/GLB — no
# Alpine essa dependência é bem mais dolorosa de resolver.
FROM node:20-bookworm
RUN apt-get update \
 && apt-get install -y --no-install-recommends assimp-utils ca-certificates python3 python3-venv \
 && rm -rf /var/lib/apt/lists/*

# Ambiente Python isolado só pra buscar as organelas reais da célula
# (fetch-cell-organelles.py) — cloud-volume/trimesh não têm nada a ver com
# o resto do pipeline (100% Node/glTF-transform), então ficam num venv
# próprio em vez de poluir o Python do sistema.
RUN python3 -m venv /opt/venv-cell \
 && /opt/venv-cell/bin/pip install --no-cache-dir --upgrade pip \
 && /opt/venv-cell/bin/pip install --no-cache-dir cloud-volume trimesh

WORKDIR /app
COPY package.json ./
RUN npm install
COPY . .
CMD ["npm", "run", "run:all"]
