Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.

No mundo dos containers, uma dúvida comum é como reduzir o número de camadas ao copiar múltiplas pastas. Afinal, criar várias instruções COPY pode aumentar o tempo de build e dificultar a manutenção.
A solução simples e eficiente que vejo é usar uma única instrução COPY apontando para múltiplos diretórios, como:
COPY dirone/ dirtwo/ dirthree/ ./
Porém, há um detalhe importante: essa abordagem copia o conteúdo dos diretórios, não os diretórios em si. Se o objetivo é manter a estrutura de pastas dentro do container, uma alternativa é criar um script que faz a cópia de cada pasta para uma estrutura desejada, ou então usar um comando de instalação que organiza os arquivos no build.
Para quem precisa de uma cópia direta dos diretórios, uma estratégia mais avançada é montar um volume com esses diretórios na hora do build ou usar um arquivo tar para agrupar e extrair no container. Assim, consegue manter a estrutura sem criar múltiplas camadas. O valor aparece melhor quando operação, produto e engenharia olham para o mesmo risco. Por isso, o recorte precisa considerar manutenção, validação e caminho de volta.
No seu cenário, qual a prioridade: reduzir camadas ou manter a estrutura de pastas? Talvez valha a pena pensar em uma abordagem híbrida, que pode facilitar o entendimento e o desempenho do seu Dockerfile. Por isso, o recorte precisa considerar manutenção, validação e caminho de volta. Esse contexto ajuda a separar ganho real de novidade difícil de sustentar. A decisão fica mais saudável quando o time consegue medir o impacto depois. Sem esse critério, a solução pode parecer simples no começo e cara no suporte.
hum, eu faria uma migração faseada mesmo. Assim dá pra evitar surpresas na produção e ajustar as estratégias de cópia conforme o tamanho e o conteúdo dos diretórios.
Boa dica, mas cuidado ao usar essa abordagem, pq se o diretório tiver muitos arquivos, o build pode ficar mais pesado. Melhor separar por necessidade.
Eu acho que na hora de montar o Dockerfile e importante deixar tudo bem explicito pq as vezes o COPY massivo acaba trazendo arquivos desnecessarios pro container.
Verdade, esse comentário. E na minha experiência, usar um script pra montar a estrutura antes do COPY ajuda a evitar camada extra e fica mais controlado.