Karan Gujral
Karan Gujral

Reputation: 399

Docker build for React App failing in Gitlab CI runner

I have been trying to create a react app Gitlab CI but it keeps failing on the RUN npm run build (tried RUN CI=true npm run build too) when trying to create a docker file.

Here's my Dockerfile

FROM node:8.11.1

# Create app directory
WORKDIR /app/

# Install app dependencies
RUN npm -g install serve

# A wildcard is used to ensure both package.json AND package-lock.json are copied
COPY package*.json /app/

RUN npm install

# Bundle app source
COPY . /app/

RUN ls /app/

#Build react/vue/angular bundle static files
RUN npm run build

EXPOSE 5000
# serve build folder on port 5000
CMD ["serve", "-s", "build", "-p", "5000"]

fails at step RUN npm run build with the following error:

Step 8/10 : RUN npm run build
 ---> Running in d4b3bc5de229

> [email protected] build /app
> react-scripts build

Creating an optimized production build...
Failed to compile.

./src/index.js
Cannot find file './app' in './src'.


npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] build: `react-scripts build`
npm ERR! Exit status 1
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/2018-12-20T15_52_14_979Z-debug.log
The command '/bin/sh -c npm run build' returned a non-zero code: 1
ERROR: Job failed: exit code 1

However on my local machine everything works like a charm (npm start, npm run build, even same Dockerfile on my local builds successfully). Thanks in Advance!

--- EDIT 1 --- yes ls gives the same output on my local system and CI. ./src/index.js is just my entry file. Here are the contents:

import React from "react";
import ReactDOM from "react-dom";
import App from "./app";
import * as serviceWorker from "./serviceWorker";

ReactDOM.render(<App />, document.getElementById("root"));
serviceWorker.unregister();

And yes the paths are perfectly alright as it is running successfully on my local machine.

--- EDIT 2 ---

Output of /root/.npm/_logs/*.log after I changed the working dir to /payed - Still no luck!

0 info it worked if it ends with ok
1 verbose cli [ '/usr/local/bin/node', '/usr/local/bin/npm', 'run', 'build' ]
2 info using [email protected]
3 info using [email protected]
4 verbose run-script [ 'prebuild', 'build', 'postbuild' ]
5 info lifecycle [email protected]~prebuild: [email protected]
6 info lifecycle [email protected]~build: [email protected]
7 verbose lifecycle [email protected]~build: unsafe-perm in lifecycle true
8 verbose lifecycle [email protected]~build: PATH: /usr/local/lib/node_modules/npm/node_modules/npm-lifecycle/node-gyp-bin:/payed/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
9 verbose lifecycle [email protected]~build: CWD: /payed
10 silly lifecycle [email protected]~build: Args: [ '-c', 'react-scripts build' ]
11 silly lifecycle [email protected]~build: Returned: code: 1  signal: null
12 info lifecycle [email protected]~build: Failed to exec build script
13 verbose stack Error: [email protected] build: `react-scripts build`
13 verbose stack Exit status 1
13 verbose stack     at EventEmitter.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/npm-lifecycle/index.js:285:16)
13 verbose stack     at emitTwo (events.js:126:13)
13 verbose stack     at EventEmitter.emit (events.js:214:7)
13 verbose stack     at ChildProcess.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/npm-lifecycle/lib/spawn.js:55:14)
13 verbose stack     at emitTwo (events.js:126:13)
13 verbose stack     at ChildProcess.emit (events.js:214:7)
13 verbose stack     at maybeClose (internal/child_process.js:925:16)
13 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:209:5)
14 verbose pkgid [email protected]
15 verbose cwd /payed
16 verbose Linux 4.14.48-coreos-r2
17 verbose argv "/usr/local/bin/node" "/usr/local/bin/npm" "run" "build"
18 verbose node v8.11.1
19 verbose npm  v5.6.0
20 error code ELIFECYCLE
21 error errno 1
22 error [email protected] build: `react-scripts build`
22 error Exit status 1
23 error Failed at the [email protected] build script.
23 error This is probably not a problem with npm. There is likely additional logging output above.
24 verbose exit [ 1, true ]

Upvotes: 3

Views: 2359

Answers (1)

Omtechguy
Omtechguy

Reputation: 3651

Try CI=false

CI=true is the default...

Upvotes: 1

Related Questions