gpt4 book ai didi

node.js - 加速 Docker 容器中的 NPM 安装

转载 作者:搜寻专家 更新时间:2023-10-31 22:39:00 25 4
gpt4 key购买 nike

我们使用不在版本控制中包含 node_modules 的标准做法。然而,当通过 CI/CD 管道移动时,我们必须在几个地方重新安装 NPM 依赖项,这使得一切变得非常缓慢。

有没有办法以某种方式缓存 Docker 的 NPM 依赖项?我在 Google 上搜索“docker cache npm dependencies”,2014 年的第一个搜索结果是一个死链接。

没有其他任何有值(value)的东西出现。

一个解决方案是在版本控制中包含 node_modules,但我认为那将是一个巨大的错误。我认为以某种方式缓存依赖项将是最佳选择。

这是原样的 Dockerfile:

FROM node:6

COPY . . # copy all files, but node_modules does not exist ( => gitignored)

RUN npm install --no-optional --only=production > /dev/null 2>&1
RUN npm install -g bower > /dev/null 2>&1
RUN bower install --config.interactive=false --allow-root > /dev/null 2>&1

ENTRYPOINT ["/bin/bash", "/root/cdt/run.sh"]

这是一种可能的解决方案,但我不太明白它是如何工作的:

=> http://bitjudo.com/blog/2014/03/13/building-efficient-dockerfiles-node-dot-js/

最佳答案

这个方法就像变魔术一样:

https://blog.playmoweb.com/speed-up-your-builds-with-docker-cache-bfed14c051bf

Docker 有一种特殊的缓存方式,显然最好使用与生俱来的缓存能力。

不能说我完全理解它是如何工作的,但它确实有效。

如果您遵循此模式,它将对您有用:

FROM mhart/alpine-node:5.6.0
WORKDIR /src

# Expose the port 3000
EXPOSE 3000

# Set the default command to run when a container starts
CMD ["node", "server.js"]

# Install app dependencies
COPY package.json /src
RUN npm install

# Copy your code in the docker image
COPY . /src

关于node.js - 加速 Docker 容器中的 NPM 安装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43790807/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com