[DOCKER] [NODE]: 필요에 따라 node_modules를 '빌드'해야 합니다!
3273 단어 nodejavascripttypescriptdocker
소개:
Nem todas as vezes que mudamos nosso código, isso significa que nós implementamos novas dependsências: se não inserimos nenhum pacote novo no nosso projeto, então não há motivo algum para reconstruir (rebuild) a 파스타
node_modules
.또한 vamos entender는 더 나은 성능을 얻기 위해 디버깅 속도를 늦추고 애플리케이션을 desenvolvimento합니다. 노드 로드 및 도커는 중요한 작업을 다시 시작합니다.
Como Node Dockerfiles는 다음과 같이 정상적으로 구현됩니다.
Vamos olhar rapidinho esse
Dockerfile
que está mal implementado.FROM node:16
# Cria diretório do aplicativo
WORKDIR /usr/src/app
# Copia o código inteiro
COPY . .
# Instala as dependências
RUN npm install
# Roda o servidor
EXPOSE 8080
CMD [ "node", "server.js" ]
Todo o problema de eficiência aqui 거주지
나린하
COPY . .
.Isso é ruim, pois fazer isso significa que: todas as vezes que você fizer uma mudança no código presente em
.
, 파스타 node_modules
terá que ser reconstruída, de novo e de novo e de novo...아루만도 이소:
Ao invés disso, nós devemos primeiramente copiar apenas nosso arquivo
package.json
e package-lock.json
(que controlam nossas dependsências) para o diretório do aplicativo e então instalar elas.Então, vamos atualizar nosso
Dockerfile
para:# Copia package.json e package-lock.json
COPY package*.json ./
# Instala as dependências
RUN npm install
E só então, copyiamos o resto dos nossos arquivos:
COPY . .
이제 Dockerfile을 사용할 수 있는 버전은 다음과 같습니다.
FROM node:16
# Cria diretório do aplicativo
WORKDIR /usr/src/app
# Copia package.json e package-lock.json
COPY package*.json ./
# Instala as dependências
RUN npm install
# Copiamos o resto dos arquivos
COPY . .
# Roda o servidor
EXPOSE 8080
CMD [ "node", "server.js" ]
설명:
É tudo sobre camadas cacheadas do Docker, ou Docker cached layer.
Cada imagem do Docker는 uma série de camadas로 구성됩니다.
Comandos no seu
Dockerfile
gerar novas camadas.Ao invés de manter tudo dentro de uma só camada, nós devemos quebrar em partes diferentes.
Pois o Docker semper vai tentar usar uma camada que já existe, ao invés de criar uma nova, se for possível.
Essa é a explicação simples e rápida.
Você pode ler mais detalhes na documentação oficial .
결론:
Agora, toda vez que modificarmos a
package.json
, o comando npm install
será executado novamente.Modifiquemos에 대한 수정 사항이 없으면 단순히 무시할 수 있습니다.
Você pode verificar esse comportamento no log da imagem, procurando por
---> Using cache
, que indica que a 파스타 node_modules
não está sendo reconstruída.게시물을 게시합니까? :디
Se você gostou, por favor me seguir ou favoritar esse post!
Reference
이 문제에 관하여([DOCKER] [NODE]: 필요에 따라 node_modules를 '빌드'해야 합니다!), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/joseguilhermefmoura/docker-node-como-buildar-a-nodemodules-so-quando-for-necessario-3655
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여([DOCKER] [NODE]: 필요에 따라 node_modules를 '빌드'해야 합니다!), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/joseguilhermefmoura/docker-node-como-buildar-a-nodemodules-so-quando-for-necessario-3655텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)