docker 运行 npm install 导致 ERR_SOCKET_TIMEOUT

Mat*_*-OD 6 node.js npm docker reactjs

当 docker run npm install 时,我有 ERR_SOCKET_TIMEOUT

我已经尝试过: RUN npm config setregistry="http://registry.npmjs.org

该命令在我使用电话网络时有效,但在我使用家庭 WiFi 时无效。我两者都没有代理

7194 verbose type system
7195 verbose stack Fetch Error: request to http://registry.npmjs.org/workbox-streams/-/workbox-streams-5.1.4.tgz failed, reason: Socket timeout
7195 verbose stack     at ClientRequest.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/minipass-fetch/lib/index.js:97:14)
7195 verbose stack     at ClientRequest.emit (node:events:365:28)
7195 verbose stack     at Socket.socketErrorListener (node:_http_client:447:9)
7195 verbose stack     at Socket.emit (node:events:377:35)
7195 verbose stack     at emitErrorNT (node:internal/streams/destroy:193:8)
7195 verbose stack     at emitErrorCloseNT (node:internal/streams/destroy:158:3)
7195 verbose stack     at processTicksAndRejections (node:internal/process/task_queues:83:21)
7196 verbose cwd /usr/src/frontend_mak
7197 verbose Linux 5.8.0-53-generic
7198 verbose argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "--verbose"
7199 verbose node v16.1.0
7200 verbose npm  v7.11.2
7201 error code ERR_SOCKET_TIMEOUT
7202 error errno ERR_SOCKET_TIMEOUT
7203 error request to http://registry.npmjs.org/workbox-streams/-/workbox-streams-5.1.4.tgz failed, reason: Socket timeout
7204 verbose exit 1
Run Code Online (Sandbox Code Playgroud)

我的 React 应用程序的 Dockerfile

1   FROM node:16.1-alpine3.11                                                                  
  1                                                                                            
  2 WORKDIR /usr/src/frontend_mak                                                              
  3                                                                                            
  4 ENV PATH /usr/src/frontend_mak/node_modules/.bin:$PATH                                     
  5                                                                                            
  6 COPY package.json ./                                                                       
  7 COPY package-lock.json ./                                                                  
  8                                                                                            
  9 RUN npm config set registry="http://registry.npmjs.org/"                                   
 10 RUN npm config list                                                                        
 11                                                                                            
 12 RUN npm install --verbose                                                                  
 13                                                                                            
 14 COPY . ./                                                                                  
 15                                                                                            
 16 CMD ["npm", "start"]  
Run Code Online (Sandbox Code Playgroud)