【问题标题】:Cannot build Docker image for Angular 12无法为 Angular 12 构建 Docker 映像
【发布时间】:2022-02-09 01:36:48
【问题描述】:

我正在尝试构建 Angular 图像,但出现此错误:

#14 130.6 - Generating browser application bundles (phase: setup)...
#14 146.6 events.js:377
#14 146.6       throw er; // Unhandled 'error' event
#14 146.6       ^
#14 146.6
#14 146.6 Error: write EPIPE
#14 146.6     at afterWriteDispatched (internal/stream_base_commons.js:156:25)
#14 146.6     at writeGeneric (internal/stream_base_commons.js:147:3)
#14 146.6     at Socket._writeGeneric (net.js:787:11)
#14 146.6     at Socket._write (net.js:799:8)
#14 146.6     at writeOrBuffer (internal/streams/writable.js:358:12)
#14 146.6     at Socket.Writable.write (internal/streams/writable.js:303:10)
#14 146.6     at Object.writeToStdin (/app/node_modules/esbuild/lib/main.js:1725:19)
#14 146.6     at sendRequest (/app/node_modules/esbuild/lib/main.js:617:14)
#14 146.6     at start (/app/node_modules/esbuild/lib/main.js:1254:9)
#14 146.6     at Object.transform2 [as transform] (/app/node_modules/esbuild/lib/main.js:1304:5)
#14 146.6 Emitted 'error' event on Socket instance at:
#14 146.6     at emitErrorNT (internal/streams/destroy.js:106:8)
#14 146.6     at emitErrorCloseNT (internal/streams/destroy.js:74:3)
#14 146.6     at processTicksAndRejections (internal/process/task_queues.js:82:21)
#14 146.6     at runNextTicks (internal/process/task_queues.js:64:3)
#14 146.6     at processImmediate (internal/timers.js:437:9) {
#14 146.6   errno: -32,
#14 146.6   code: 'EPIPE',
#14 146.6   syscall: 'write'

这是我的 DockerFile:

#stage 1
FROM node:14.17.6 as node
WORKDIR /app
COPY . .
RUN npm install
RUN npm run build --prod
#stage 2
FROM nginx:alpine
COPY --from=node /app/dist/Angular /usr/share/nginx/html

package.json

{
  "name": "angular",
  "version": "1.0.0",
  "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build",
    "watch": "ng build --watch --configuration development",
    "test": "ng test"
  },
  "private": true,
  "dependencies": {
    "@angular/animations": "~12.2.0",
    "@angular/cdk": "^12.2.13",
    "@angular/common": "~12.2.0",
    "@angular/compiler": "~12.2.0",
    "@angular/core": "~12.2.0",
    "@angular/fire": "^7.2.0",
    "@angular/forms": "~12.2.0",
    "@angular/material": "^12.2.13",
    "@angular/platform-browser": "~12.2.0",
    "@angular/platform-browser-dynamic": "~12.2.0",
    "@angular/router": "~12.2.0",
    "bootstrap": "^5.1.3",
    "font-awesome": "^4.7.0",
    "jquery": "^3.6.0",
    "ngx-bootstrap": "^7.1.2",
    "rating": "^0.1.0",
    "rxjs": "~6.6.0",
    "tslib": "^2.3.0",
    "zone.js": "~0.11.4",
    "firebase": "^9.4.0",
    "rxfire": "^6.0.0"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "~12.2.5",
    "@angular/cli": "~12.2.5",
    "@angular/compiler-cli": "~12.2.0",
    "@types/jasmine": "~3.8.0",
    "@types/lodash": "^4.14.178",
    "@types/node": "^12.11.1",
    "jasmine-core": "~3.8.0",
    "karma": "~6.3.0",
    "karma-chrome-launcher": "~3.1.0",
    "karma-coverage": "~2.0.3",
    "karma-jasmine": "~4.0.0",
    "karma-jasmine-html-reporter": "~1.7.0",
    "typescript": "~4.3.5"
  }
}

我正在使用适用于 Windows 的 Docker Desktop 4.4.4

PS:我已经尝试增加 docker 引擎的内存并尝试了几个版本的节点,但我遇到了同样的问题。

应用程序可以在我的机器上正常运行,但只有 Docker 镜像无法构建。

有人可以帮忙吗?

【问题讨论】:

  • 你能分享你的 package.json 吗?
  • “我已经尝试增加 docker 引擎的内存” 为什么?
  • @jeremy-denis 我用 package.json 更新了帖子
  • 您使用的是 Windows 吗?这是否解决了您的问题:github.com/facebook/create-react-app/issues/9077?

标签: javascript node.js angular docker


【解决方案1】:

通过在 DockerFile 中添加这一行来解决问题:

RUN npm i -g @angular/cli

似乎是在启动 e2e 测试并且需要 Angular CLI 时出现问题

DockefFile 变为:

#stage 1
FROM node:14.17.6 as node
WORKDIR /app
COPY . .
RUN npm i -g @angular/cli
RUN npm install
RUN npm run build --prod
#stage 2
FROM nginx:alpine
COPY --from=node /app/dist/Angular /usr/share/nginx/html

【讨论】:

    猜你喜欢
    • 2021-12-24
    • 1970-01-01
    • 1970-01-01
    • 2020-03-23
    • 1970-01-01
    • 1970-01-01
    • 2019-03-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多