我正在处理一个Next.js项目,其中包含在Docker容器中运行的PostgreSQL数据库.我的项目设置使用Docker Compose.然而,当我运行docker-compose up时,执行NPM安装命令需要花费很长时间.在我的开发机器上本地运行NPM安装不到一分钟就完成了.

在附加的日志(log)中,您可以看到,当我在日志(log)级别设置为Verbose的情况下运行NPM I时,它似乎在某个时间点之后挂起,没有任何进展.

[+] Building 3624.4s (7/8)
 => => transferring context: 34B                                                                                                                                                                                             0.0s
 => [internal] load metadata for docker.io/library/node:latest                                                                                                                                                               1.5s 
 => [internal] load build context                                                                                                                                                                                            0.1s 
 => => transferring context: 906.47kB                                                                                                                                                                                        0.1s
 => [1/4] FROM docker.io/library/node@sha256:xxx                                                                                                                0.0s 
 => CACHED [2/4] WORKDIR /app                                                                                                                                                                                                0.0s
 => [3/4] COPY . .                                                                                                                                                                                                           0.3s 
 => [4/4] RUN npm install --loglevel verbose                                                                                                                                                                              2065.1s 
 => => # npm http fetch GET 200 https://registry.npmjs.org/@types/eslint/-/eslint-8.4.10.tgz 137294ms attempt #3 (cache miss)
 => => # npm http fetch GET 200 https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.6.tgz 137326ms attempt #3 (cache miss)                                                                                  
 => => # npm http fetch GET 200 https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz 137403ms attempt #3 (cache miss)
 => => # npm http fetch GET 200 https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz 137436ms attempt #3 (cache miss)
 => => # npm http fetch GET 200 https://registry.npmjs.org/@types/node/-/node-20.4.1.tgz 137633ms attempt #3 (cache miss)                                                                                                         
 => => # npm http fetch GET 200 https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz 137706ms attempt #3 (cache miss)                                                                   

这是我的对接-编排设置:

FROM node

WORKDIR /app

COPY . .
RUN npm install --loglevel verbose

ENV PORT=5000
EXPOSE 5000

ENTRYPOINT ["npm", "start"]

如果信息不清楚,请让我知道.

推荐答案

这是因为你没有利用Docker缓存.try 将以下内容添加到您的Dockerfile中,如详细here.

COPY package.json /app
RUN npm install

Javascript相关问答推荐

将音频记录从js发送到activx-web服务器以保存到磁盘

React redux状态未在React-Router库中呈现

功能和普通对象之间的原型污染

如何在JavaScript中在文本内容中添加新行

仅针对RTK查询中的未经授权的错误取消maxRetries

变量的值在Reaction组件中的Try-Catch语句之外丢失

rxjs插入延迟数据

在HTML语言中调用外部JavaScript文件中的函数

为什么我的getAsFile()方法返回空?

第三方包不需要NODE_MODULES文件夹就可以工作吗?

使用Nuxt Apollo在Piniastore 中获取产品细节

在使用REACT更改了CSS类之后,无法更改CSS样式

如何限制显示在分页中的可见页面的数量

使用自动识别发出信号(&Q)

是否可以将异步调用与useState(UnctionName)一起使用

P5.js中的分形树

Reaction即使在重新呈现后也会在方法内部保留局部值

TypeORM QueryBuilder限制联接到一条记录

Plotly.js栏为x轴栏添加辅助文本

计算对象数组中属性的滚动增量