# 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"]