FROM node:20-slim # Configurar Puppeteer para usar o Chromium do sistema ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser # Instalar dependências do sistema RUN apt-get update && apt-get install -y chromium \ libgconf-2-4 \ postgresql-client \ graphicsmagick \ && rm -rf /var/lib/apt/lists/* \ && ln -sf /usr/bin/chromium /usr/bin/chromium-browser # Verificar a instalação do Chromium RUN chromium --version # Criar diretório da aplicação WORKDIR /usr/src/app # Copiar arquivos de dependências COPY package*.json ./ COPY prisma ./prisma/ # Instalar dependências do projeto RUN npm install # Instalar dependências globais necessárias RUN npm install -g concurrently vite RUN npm install @rollup/rollup-linux-arm64-gnu # Copiar o resto dos arquivos COPY . . # Gerar cliente Prisma RUN npx prisma generate # Expor portas EXPOSE 3000 EXPOSE 5000 # Configurar variáveis de ambiente ENV NODE_ENV=production ENV PORT=5000 ENV FRONTEND_PORT=3000 ENV VITE_HOST=0.0.0.0 ENV HOST=0.0.0.0 # Script de inicialização COPY docker-entrypoint.sh /usr/local/bin/ RUN chmod +x /usr/local/bin/docker-entrypoint.sh ENTRYPOINT ["docker-entrypoint.sh"]