~/questoes/devops
Quando você executa npm run build em um projeto React, o comando processa todo o código-fonte e gera uma pasta contendo os arquivos estáticos otimizados e prontos para serem colocados em produção. Essa pasta é geralmente chamada de build ou dist e contém JavaScript e CSS minificados, que é exatamente o que você precisa para servir sua aplicação em um servidor ou container Docker.
A pasta build (ou dist em alguns projetos) contém os arquivos estáticos finais otimizados e minificados. Esses são os únicos arquivos necessários para rodar a aplicação em produção, sem código-fonte ou dependências extras. É justamente essa pasta que você copia para um container Nginx em um multi-stage build do Docker.
Correto! A pasta build contém todos os arquivos JavaScript e CSS minificados e otimizados, prontos para produção. É dessa pasta que você extrai os arquivos para servir via Nginx em um container Docker.
A pasta public contém assets estáticos do projeto (como favicon, imagens e arquivos públicos), mas não é o output do build. Esses arquivos já estão inclusos dentro da pasta build após o comando npm run build executar.
A pasta node_modules contém todas as dependências do projeto e é necessária apenas em desenvolvimento. Em produção, você nunca copia node_modules para o container; apenas os arquivos compilados da pasta build.
A pasta src contém o código-fonte original em JSX e módulos JavaScript. Isso nunca é enviado para produção; é exatamente o que npm run build transforma em arquivos otimizados dentro da pasta build.