【问题标题】:Angularjs not working in docker file npm install Write after End erroAngularjs 无法在 docker 文件 npm install 结束后写入错误
【发布时间】:2018-03-02 20:24:36
【问题描述】:

更新:所以我找到了一个“解决方案”,我无法命名容器客户端。我必须在我无法删除的地方有一个隐藏的容器

所以我正在尝试为平均堆栈设置一个 docker 文件环境,但在更改时无法重新启动角度。我已经尝试了一些东西并且正在测试以确保它是 Docker composeb 但是现在当我尝试运行 docker 文件时它会得到 npm install 然后有 npm err

我必须指出我完全卸载了 angular nodejs npm 和 docker 并且仍然存在问题

Step 2/8 : RUN mkdir -p /usr/src/app
 ---> Using cache
 ---> 3d1dc570d73c
Step 3/8 : WORKDIR /usr/src/app
 ---> Using cache
 ---> 6ee5da6bd050
Step 4/8 : COPY package.json /usr/src/app
 ---> Using cache
 ---> 2b7d8e3010d5
Step 5/8 : RUN npm install
 ---> Running in 90163baffdb6
npm WARN deprecated nodemailer@2.7.2: All versions below 4.0.1 of Nodemailer are deprecated. See https://nodemailer.com/status/
npm WARN deprecated node-uuid@1.4.8: Use uuid module instead
npm ERR! code ERR_STREAM_WRITE_AFTER_END
npm ERR! write after end
npm ERR! code ERR_STREAM_WRITE_AFTER_END
npm ERR! write after end
npm ERR! code ERR_STREAM_WRITE_AFTER_END
npm ERR! write after end

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2018-03-02T20_12_17_764Z-debug.log
The command '/bin/sh -c npm install' returned a non-zero code: 1

错误日志

15037 silly pacote data for sha1-4PyVEztu8nbNyIh82vJKpvFW+Po= not present. Using manifest.
15038 verbose stack Error: write after end
15038 verbose stack     at writeAfterEnd (_stream_writable.js:236:12)
15038 verbose stack     at PassThrough.Writable.write (_stream_writable.js:287:5)
15038 verbose stack     at PassThrough.Writable.end (_stream_writable.js:553:10)
15038 verbose stack     at ReadEntry.entry.on (/home/jacob/.nvm/versions/node/v8.9.4/lib/node_modules/npm/node_modules/pacote/lib/extract-stream.js:19:41)
15038 verbose stack     at emitOne (events.js:121:20)
15038 verbose stack     at ReadEntry.emit (events.js:211:7)
15038 verbose stack     at ReadEntry.emit (/home/jacob/.nvm/versions/node/v8.9.4/lib/node_modules/npm/node_modules/tar/node_modules/minipass/index.js:287:25)
15038 verbose stack     at ReadEntry.[maybeEmitEnd] (/home/jacob/.nvm/versions/node/v8.9.4/lib/node_modules/npm/node_modules/tar/node_modules/minipass/index.js:240:12)
15038 verbose stack     at ReadEntry.end (/home/jacob/.nvm/versions/node/v8.9.4/lib/node_modules/npm/node_modules/tar/node_modules/minipass/index.js:153:27)
15038 verbose stack     at Unpack.[consumeBody] (/home/jacob/.nvm/versions/node/v8.9.4/lib/node_modules/npm/node_modules/tar/lib/parse.js:210:13)
15038 verbose stack     at Unpack.[consumeChunkSub] (/home/jacob/.nvm/versions/node/v8.9.4/lib/node_modules/npm/node_modules/tar/lib/parse.js:391:40)
15038 verbose stack     at Unpack.[consumeChunk] (/home/jacob/.nvm/versions/node/v8.9.4/lib/node_modules/npm/node_modules/tar/lib/parse.js:362:30)
15038 verbose stack     at Unzip.(anonymous function).on.chunk (/home/jacob/.nvm/versions/node/v8.9.4/lib/node_modules/npm/node_modules/tar/lib/parse.js:291:59)
15038 verbose stack     at emitOne (events.js:116:13)
15038 verbose stack     at Unzip.emit (events.js:211:7)
15038 verbose stack     at Unzip.emit (/home/jacob/.nvm/versions/node/v8.9.4/lib/node_modules/npm/node_modules/tar/node_modules/minipass/index.js:287:25)
15039 verbose cwd /
15040 verbose Linux 4.10.0-38-generic
15041 verbose argv "/home/jacob/.nvm/versions/node/v8.9.4/bin/node" "/home/jacob/.nvm/versions/node/v8.9.4/bin/npm" "install" "-g" "@angular/cli"
15042 verbose node v8.9.4
15043 verbose npm  v5.7.1
15044 error write after end
15045 verbose exit [ 1, true ]

【问题讨论】:

  • 看起来只是 NPM 安装错误,似乎与 Docker 无关
  • 看起来是 NPM 包 pacote 导致了错误

标签: angularjs docker npm npm-install


【解决方案1】:

我也有同样的问题,解决方案是将 package-lock.json 也添加到 docker 容器中,并确保您没有将构建的 Angular 应用程序添加到容器中。

【讨论】:

  • 我最终修复了它,但我现在忘记了我是如何做到的
【解决方案2】:

这是 npm 5.7.1 依赖的 pacote 包中的 issuenpm issue 关注。

只需将 npm 降级到 5.6.0 版本:

npm install -g npm@5.6.0

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-23
    • 1970-01-01
    • 2017-01-08
    • 2020-06-28
    • 1970-01-01
    相关资源
    最近更新 更多