9

I'm getting an error when I run docker build . The problem is when docker runs npm install -f, initially I changed the command to npm install but the problem still persists. The logs are too long I can't post them here for more detail here. Below is a snippet of the logs, the last part of the logs which is failing to complete the build. I have also included the Dockerfile.

Note: When I run npm run build locally on my machine it works perfectly tried to change npm run build --aot to npm run build in the Dockerfile but the problem still persists.

Logs

Generating ES5 bundles for differential loading...
An unhandled exception occurred: [BABEL] /app/dist/e-county/src-app-receipting-receipting-module-es2015.js: Could not find plugin "proposal-numeric-separator". Ensure there is an entry in ./available-plugins.js for it. (While processing: "/app/node_modules/@babel/preset-env/lib/index.js")
See "/tmp/ng-j8ToFT/angular-errors.log" for further details.
npm ERR! code ELIFECYCLE
npm ERR! syscall spawn
npm ERR! file sh
npm ERR! errno ENOENT
npm ERR! [email protected] build: `node --max_old_space_size=4096 node_modules/@angular/cli/bin/ng build`
npm ERR! spawn ENOENT
npm ERR! 
npm ERR! Failed at the [email protected] build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2020-05-27T17_41_05_761Z-debug.log
The command '/bin/sh -c npm run build --aot' returned a non-zero code: 1

Dockerfile

# stage 1
FROM node:latest as node

WORKDIR /app

COPY . .


RUN npm i -f && npm audit fix

RUN npm run build --aot

# stage 2
FROM nginx:alpine


RUN rm -rf /usr/share/nginx/html/*

COPY  --from=node /app/nginx/*  /etc/nginx/conf.d/default.conf
COPY --from=node /app/dist/e-county /usr/share/nginx/html
Philip Mutua
  • 6,016
  • 12
  • 41
  • 84
  • 1
    Might be a duplicate to https://stackoverflow.com/questions/60780664/could-not-find-plugin-proposal-numeric-separator – HackLab May 27 '20 at 18:01

2 Answers2

5

After inspecting the logs below, I noticed that issue was the node version I was using which was v10.15.1 and also had a deprecated package [email protected]. From the Dockerfile I was trying to install the latest node version which is incompatible with the deprecated package version. I later upgraded the application to Angular 9. There are a couple of new breaking changes in this version. Changed also the Dockerfile I didn't need to force install with npm i -f or run npm audit fix had all the dependencies and were up to date. It's important to worth mention, always check your dependencies in your app if there are up to date and find out if there are any breaking changes involved from the package documentation this would save you a lot of time from fixing dependency issues.

npm WARN deprecated [email protected]: fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.
npm WARN notsup Unsupported engine for [email protected]: wanted: {"node":"<8.10.0"} (current: {"node":"10.15.1","npm":"6.12.0"})
npm WARN notsup Not compatible with your version of node/npm: [email protected]
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.2.7 (node_modules/watchpack-chokidar2/node_modules/chokidar/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.2.7 (node_modules/webpack-dev-server/node_modules/chokidar/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
npm WARN notsup Unsupported engine for [email protected]: wanted: {"node":"<8.10.0"} (current: {"node":"10.15.1","npm":"6.12.0"})
npm WARN notsup Not compatible with your version of node/npm: [email protected]
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.2.7 (node_modules/watchpack-chokidar2/node_modules/chokidar/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.2.7 (node_modules/webpack-dev-server/node_modules/chokidar/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
npm WARN @angular/[email protected] requires a peer of @angular/[email protected] but none is installed. You must install peer dependencies yourself.
npm WARN @angular-devkit/[email protected] requires a peer of @angular/compiler-cli@>=9.0.0 < 10 but none is installed. You must install peer dependencies yourself.
npm WARN @angular-devkit/[email protected] requires a peer of typescript@>=3.6 < 3.9 but none is installed. You must install peer dependencies yourself.
npm WARN @ngtools/[email protected] requires a peer of @angular/compiler-cli@>=9.0.0 < 10 but none is installed. You must install peer dependencies yourself.
npm WARN @ngtools/[email protected] requires a peer of typescript@>=3.6 < 3.9 but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of node-sass@^4.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of fibers@>= 3.1.0 but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of html-webpack-plugin@^2.21.0 || ~3 || >=4.0.0-alpha.2 <5 but none is installed. You must install peer dependencies yourself.

+ @angular-devkit/[email protected]
added 254 packages from 127 contributors, removed 28 packages, updated 169 packages and moved 25 packages in 132.099s
fixed 4 of 9 vulnerabilities in 2093 scanned packages
  3 package updates for 5 vulnerabilities involved breaking changes
  (use `npm audit fix --force` to install breaking changes; or refer to `npm audit` for steps to fix these manually)

Updated Dockerfile

# stage 1
FROM node:latest as node

WORKDIR /app

COPY . .

RUN npm i 

RUN npm run build --prod

# stage 2
FROM nginx:alpine

RUN rm -rf /usr/share/nginx/html/*

COPY  --from=node /app/nginx/*  /etc/nginx/conf.d/default.conf
COPY --from=node /app/dist/e-county /usr/share/nginx/html
Philip Mutua
  • 6,016
  • 12
  • 41
  • 84
0

Check "outputPath" in angular.json. The path passed in COPY --from=node its needed to be the same