ANÚNCIO

~/questoes/devops

Qual é a primeira etapa do Dockerfile multi-stage para servir React?

Responda, confira o feedback e use o resultado para orientar sua revisão.
Aula de referência #07 – Criando um contanier para o NGINX servir minha SPA em React | Thi Code
Para fixar

Primeira Etapa do Dockerfile Multi-stage para React

Conceito central

Um Dockerfile multi-stage para React divide a construção em duas etapas: na primeira, o Node.js compila a aplicação gerando arquivos estáticos otimizados; na segunda, o NGINX serve esses arquivos. Esta abordagem reduz drasticamente o tamanho final da imagem Docker.

Por que essa resposta faz sentido

A primeira etapa (build stage) é responsável por instalar Node.js, configurar as dependências do projeto e compilar o React, gerando os arquivos estáticos (HTML, CSS e JavaScript bundled) que serão utilizados posteriormente.

Armadilhas comuns

  • Confundir o build stage (compilação) com o production stage (servição), pensando que tudo acontece em uma etapa única.
  • Achar que copiar arquivos estáticos para o NGINX é a primeira etapa, quando na verdade esses arquivos precisam existir antes de serem copiados.
  • Pensar que a configuração do NGINX faz parte da primeira etapa do Dockerfile, quando na verdade é exclusiva da segunda etapa.

Entenda as alternativas

A

A primeira etapa do multi-stage build é o build stage. Aqui o Node.js está disponível para instalar dependências via npm ou yarn e executar o comando de build (npm run build), que transforma o código React em arquivos estáticos otimizados prontos para produção.

B

Copiar arquivos estáticos é uma ação que ocorre na segunda etapa (production stage), não na primeira. O NGINX precisa desses arquivos já compilados para servir, o que só é possível depois que o build foi concluído.

C

Configurar o NGINX acontece na segunda etapa (production stage), quando a imagem NGINX enxuta é utilizada. O arquivo nginx.conf é importante, mas não faz parte da primeira etapa do build multi-stage.

D

Mapeamento de portas não é configurado no Dockerfile. Essa é uma configuração que ocorre quando você executa o container com o comando docker run ou em ferramentas como Docker Compose, fora do escopo do build.

Dica prática: Quando você for construir seu Dockerfile, use a palavra-chave FROM duas vezes: primeira vez com 'node:versão AS builder' para a compilação, segunda vez com 'nginx:alpine' para a servição. Isso torna visual e organizado o conceito de multi-stage.

Revise pensando: Qual é o propósito principal da primeira etapa do Dockerfile multi-stage: compilar o código React ou servir os arquivos já compilados?