I have a react app being built in cloudbuild. Recently this issue started, builds fail intermittently with the below error and most of the time retry succeeds. But this has become frequent now.
Step #1 - "Build Docker Image": > react-app-rewired build
Step #1 - "Build Docker Image":
Step #1 - "Build Docker Image": Creating an optimized production build...
Step #1 - "Build Docker Image": /node_modules/react-scripts/scripts/build.js:19
Step #1 - "Build Docker Image": throw err;
Step #1 - "Build Docker Image": ^
Step #1 - "Build Docker Image":
Step #1 - "Build Docker Image": RpcRemoteError: ENOENT: no such file or directory, lstat '/proc/24/fd/23'
Step #1 - "Build Docker Image": at Object.realpathSync (node:fs:2503:7)
Step #1 - "Build Docker Image": at getRealPath (/node_modules/fork-ts-checker-webpack-plugin/lib/typescript-reporter/file-system/RealFileSystem.js:73:100)
Step #1 - "Build Docker Image": at Object.realPath (/node_modules/fork-ts-checker-webpack-plugin/lib/typescript-reporter/file-system/RealFileSystem.js:153:20)
Step #1 - "Build Docker Image": at Object.readStats (/node_modules/fork-ts-checker-webpack-plugin/lib/typescript-reporter/file-system/PassiveFileSystem.js:59:45)
Step #1 - "Build Docker Image": at Object.directoryExists (/node_modules/fork-ts-checker-webpack-plugin/lib/typescript-reporter/reporter/ControlledTypeScriptSystem.js:147:58)
Step #1 - "Build Docker Image": at Object.directoryProbablyExists (/node_modules/typescript/lib/typescript.js:18921:46)
Step #1 - "Build Docker Image": at loadModuleFromImmediateNodeModulesDirectory (/node_modules/typescript/lib/typescript.js:42175:42)
Step #1 - "Build Docker Image": at /node_modules/typescript/lib/typescript.js:42169:39
Step #1 - "Build Docker Image": at Object.forEachAncestorDirectory (/node_modules/typescript/lib/typescript.js:6557:26)
Step #1 - "Build Docker Image": at loadModuleFromNearestNodeModulesDirectoryWorker (/node_modules/typescript/lib/typescript.js:42163:19)
Step #1 - "Build Docker Image": The command '/bin/sh -c npm run build' returned a non-zero code: 1
Finished Step #1 - "Build Docker Image"
ERROR
ERROR: build step 1 "gcr.io/cloud-builders/docker" failed: step exited with non-zero status: 1
As the issue you have with the build is intermittent and it could be caused by many different causes, could you please add your dockerfile and your build config to investigate deeper and narrow the possible reasons for the issue?
Also, as additional information, could you please add the machine type used for your build?
Sorry about late response, find below docker file and build config.
# First Stage
FROM node:lts-alpine AS build
ARG NPM_TOKEN
ARG REACT_APP_TESTING
ARG REACT_APP_STAGING
ARG REACT_APP_PRODUCTION
ARG REACT_APP_STAGING_CUSTOM
ARG REACT_APP_PROJECTS_API_URL
ARG REACT_APP_ACCOUNTS_API_URL
ARG REACT_APP_AUTH_API_URL
ARG REACT_APP_NOTIFICATIONS_API_URL
ARG REACT_APP_UNSPLASH_API_KEY
ARG REACT_APP_GATEWAY_KEY
ARG REACT_APP_API_KEY
ARG REACT_APP_AUTH_DOMAIN
ARG REACT_APP_PROJECT_ID
ARG REACT_APP_STORAGE_BUCKET
ARG REACT_APP_MESSAGIN_SENDER_ID
ARG REACT_APP_APP_ID
ARG REACT_APP_FS_API_KEY
ARG REACT_APP_FS_AUTH_DOMAIN
ARG REACT_APP_FS_PROJECT_ID
ARG REACT_APP_FS_STORAGE_BUCKET
ARG REACT_APP_FS_MESSAGIN_SENDER_ID
ARG REACT_APP_FS_APP_ID
ARG REACT_APP_FS_MEASUREMENT_ID
# this variable is important to only show the final production build
# on the client side
ENV GENERATE_SOURCEMAP=false
# create .npmrc file with npm auth token then download dependencies
# then delete credential file
COPY package.json package.json
COPY package-lock.json package-lock.json
RUN echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" > .npmrc && \
npm install && \
rm -f .npmrc
# creates production build of product
COPY src/ src/
COPY public/ public/
COPY tsconfig.json tsconfig.json
COPY config-overrides.js config-overrides.js
RUN npm run build
# Second Stage
# adds only production build into fresh docker image and serve image
FROM node:lts-alpine
RUN yarn global add serve
WORKDIR /usr/src/app
COPY --from=build /build/ .
ENV PORT 800
EXPOSE ${PORT}
CMD serve -p $PORT -s .
Here Build Yaml:
steps:
# 2-stage docker build
- name: gcr.io/cloud-builders/docker
entrypoint: "bash"
args:
['-c', 'docker build -t gcr.io/$PROJECT_ID/collaboration-app-staging:${SHORT_SHA} . --build-arg NPM_TOKEN=$$_NPM_TOKEN --build-arg REACT_APP_STAGING=true --build-arg REACT_APP_UNSPLASH_API_KEY=$$_UNSPLASH_API_KEY --build-arg REACT_APP_GATEWAY_KEY=$$_GATEWAY_KEY --build-arg REACT_APP_API_KEY=$$REACT_APP_API_KEY --build-arg REACT_APP_AUTH_DOMAIN=$$REACT_APP_AUTH_DOMAIN --build-arg REACT_APP_PROJECT_ID=$$REACT_APP_PROJECT_ID --build-arg REACT_APP_STORAGE_BUCKET=$$REACT_APP_STORAGE_BUCKET --build-arg REACT_APP_MESSAGIN_SENDER_ID=$$REACT_APP_MESSAGIN_SENDER_ID --build-arg REACT_APP_APP_ID=$$REACT_APP_APP_ID --build-arg REACT_APP_FS_API_KEY=$$REACT_APP_FS_API_KEY --build-arg REACT_APP_FS_AUTH_DOMAIN=$$REACT_APP_FS_AUTH_DOMAIN --build-arg REACT_APP_FS_PROJECT_ID=$$REACT_APP_FS_PROJECT_ID --build-arg REACT_APP_FS_STORAGE_BUCKET=$$REACT_APP_FS_STORAGE_BUCKET --build-arg REACT_APP_FS_MESSAGIN_SENDER_ID=$$REACT_APP_FS_MESSAGIN_SENDER_ID --build-arg REACT_APP_FS_APP_ID=$$REACT_APP_FS_APP_ID --build-arg REACT_APP_FS_MEASUREMENT_ID=$$REACT_APP_FS_MEASUREMENT_ID'
]
secretEnv: ['_NPM_TOKEN', '_UNSPLASH_API_KEY', '_GATEWAY_KEY', 'REACT_APP_API_KEY', 'REACT_APP_AUTH_DOMAIN', 'REACT_APP_PROJECT_ID', 'REACT_APP_STORAGE_BUCKET', 'REACT_APP_MESSAGIN_SENDER_ID','REACT_APP_FS_API_KEY', 'REACT_APP_APP_ID', 'REACT_APP_FS_PROJECT_ID','REACT_APP_FS_AUTH_DOMAIN', 'REACT_APP_FS_MEASUREMENT_ID', 'REACT_APP_FS_APP_ID', 'REACT_APP_FS_MESSAGIN_SENDER_ID', 'REACT_APP_FS_STORAGE_BUCKET',]
# push latest docker build
- name: 'gcr.io/cloud-builders/docker'
args: ['push', 'gcr.io/$PROJECT_ID/collaboration-app-staging:${SHORT_SHA}']
# deploy latest docker build
- name: 'gcr.io/cloud-builders/gcloud'
args:
[
'beta',
'run',
'deploy',
'collaboration-app-staging',
'--image',
'gcr.io/$PROJECT_ID/collaboration-app-staging:${SHORT_SHA}',
'--region',
'us-east1',
'--platform',
'managed',
]
timeout: 900s
options:
machineType: 'E2_HIGHCPU_32'
images:
- 'gcr.io/$PROJECT_ID/collaboration-app-staging:${SHORT_SHA}'
# npm auth token to download private packages
availableSecrets:
secretManager:
- versionName: projects/885746364980/secrets/NPM_TOKEN/versions/1
env: '_NPM_TOKEN'
- versionName: projects/885746364980/secrets/UNSPLASH_API_KEY/versions/2
env: '_UNSPLASH_API_KEY'
- versionName: projects/885746364980/secrets/GATEWAY_KEY/versions/1
env: '_GATEWAY_KEY'
- versionName: projects/885746364980/secrets/FIREBASE_API_KEY/versions/1
env: 'REACT_APP_API_KEY'
- versionName: projects/885746364980/secrets/FIREBASE_AUTH_DOMAIN/versions/1
env: 'REACT_APP_AUTH_DOMAIN'
- versionName: projects/885746364980/secrets/FIREBASE_PROJECT_ID/versions/1
env: 'REACT_APP_PROJECT_ID'
- versionName: projects/885746364980/secrets/FIREBASE_STORAGE_BUCKET/versions/1
env: 'REACT_APP_STORAGE_BUCKET'
- versionName: projects/885746364980/secrets/FIREBASE_MESSAGIN_SENDER_ID/versions/1
env: 'REACT_APP_MESSAGIN_SENDER_ID'
- versionName: projects/885746364980/secrets/FIREBASE_APP_ID/versions/1
env: 'REACT_APP_APP_ID'
- versionName: projects/885746364980/secrets/REACT_APP_FS_API_KEY/versions/1
env: 'REACT_APP_FS_API_KEY'
- versionName: projects/885746364980/secrets/REACT_APP_FS_AUTH_DOMAIN/versions/1
env: 'REACT_APP_FS_AUTH_DOMAIN'
- versionName: projects/885746364980/secrets/REACT_APP_FS_PROJECT_ID/versions/1
env: 'REACT_APP_FS_PROJECT_ID'
- versionName: projects/885746364980/secrets/REACT_APP_FS_STORAGE_BUCKET/versions/1
env: 'REACT_APP_FS_STORAGE_BUCKET'
- versionName: projects/885746364980/secrets/REACT_APP_FS_MESSAGIN_SENDER_ID/versions/1
env: 'REACT_APP_FS_MESSAGIN_SENDER_ID'
- versionName: projects/885746364980/secrets/REACT_APP_FS_APP_ID/versions/1
env: 'REACT_APP_FS_APP_ID'
- versionName: projects/885746364980/secrets/REACT_APP_FS_MEASUREMENT_ID/versions/1
env: 'REACT_APP_FS_MEASUREMENT_ID'
Machine type: E2_HIGHCPU_32
As your issue becomes specific to your project/deployment, I recommend you to create a Support case.