é realmente uma boa prática e você pode fazer da seguinte maneira:
Copie seu package.json e package-lock.json antes de copiar seu código no contêiner. O Docker armazenará em cache os node_modules instalados como uma camada separada e, em seguida, se você alterar o código do aplicativo e executar o comando de compilação, o node_modules não será instalado novamente se você não tiver alterado o package.json
É, hehe. O segredo é o .dockerignore, que é praticamente o primeiro passo do artigo original, hehe; aí da pra meter um COPY . . com mais tranquilidade e também além de reduzir o tamanho final da imagem, reduz o tempo de build junto porque a primeira coisa que ele faz é mover os arquivos para contexto. Além da pasta node_modules, é legal evitar enviar a .git e o arquivo .env que em muitos projetos contem dados sensíveis como senhas e keys de apis... aí se alguém pega sua imagem, roda, entra nela, vai ter tudo lá :S
é realmente uma boa prática e você pode fazer da seguinte maneira:
Copie seu package.json e package-lock.json antes de copiar seu código no contêiner. O Docker armazenará em cache os node_modules instalados como uma camada separada e, em seguida, se você alterar o código do aplicativo e executar o comando de compilação, o node_modules não será instalado novamente se você não tiver alterado o package.json
Se desejar saber mais detalhes a respeito, você poderá dar uma conferida nesse artigo aqui: dev.to/alex_barashkov/using-docker...
É, hehe. O segredo é o .dockerignore, que é praticamente o primeiro passo do artigo original, hehe; aí da pra meter um COPY . . com mais tranquilidade e também além de reduzir o tamanho final da imagem, reduz o tempo de build junto porque a primeira coisa que ele faz é mover os arquivos para contexto. Além da pasta node_modules, é legal evitar enviar a .git e o arquivo .env que em muitos projetos contem dados sensíveis como senhas e keys de apis... aí se alguém pega sua imagem, roda, entra nela, vai ter tudo lá :S
Posso colocar esse adendo no próximo post?
Pode, claro :)