Skip to content

Update docker image and fix container scanning - Add dependencies for npm install from git repos and node-gyp builds

.

  • Update docker image and fix container scanning
  • Add dependencies for npm install from git repos and node-gyp builds so docker_base and containerize CI jobs work

Previous MR https://gitlab.com/gitlab-org/gitter/webapp/-/merge_requests/1787 which was rolled back in https://gitlab.com/gitlab-org/gitter/webapp/-/merge_requests/1810


Ensure git is installed in Node.js Alpine Docker image for npm install from git repos. Fix is from https://github.com/nodejs/docker-node/issues/586#issuecomment-453612471

Failing to install package from git repo, https://gitlab.com/gitlab-org/gitter/webapp/-/jobs/451716622
 npm ERR! code ENOENT
 npm ERR! syscall spawn git
 npm ERR! path git
 npm ERR! errno ENOENT
 npm ERR! enoent Error while executing:
 npm ERR! enoent undefined ls-remote -h -t ssh://git@github.com/suprememoocow/node-sechash.git
 npm ERR! enoent 
 npm ERR! enoent 
 npm ERR! enoent spawn git ENOENT
 npm ERR! enoent This is related to npm not being able to find a file.
 npm ERR! enoent 

Ensure all dependencies for node-gyp are installed for native module builds. Fix is from https://github.com/mhart/alpine-node/issues/27#issuecomment-298395675

node-gyp failing to build something in https://gitlab.com/gitlab-org/gitter/webapp/-/jobs/453074880
Step 12/13 : RUN npm install
  ---> Running in 4725ef8bb1fb
 > heapdump@0.3.12 install /app/node_modules/heapdump
 > node-gyp rebuild
 gyp ERR! find Python 
 gyp ERR! find Python Python is not set from command line or npm configuration
 gyp ERR! find Python Python is not set from environment variable PYTHON
 gyp ERR! find Python checking if "python" can be used
 gyp ERR! find Python - "python" is not in PATH or produced an error
 gyp ERR! find Python checking if "python2" can be used
 gyp ERR! find Python - "python2" is not in PATH or produced an error
 gyp ERR! find Python checking if "python3" can be used
 gyp ERR! find Python - "python3" is not in PATH or produced an error
 gyp ERR! find Python 
 gyp ERR! find Python **********************************************************
 gyp ERR! find Python You need to install the latest version of Python.
 gyp ERR! find Python Node-gyp should be able to find and use Python. If not,
 gyp ERR! find Python you can try one of the following options:
 gyp ERR! find Python - Use the switch --python="/path/to/pythonexecutable"
 gyp ERR! find Python   (accepted by both node-gyp and npm)
 gyp ERR! find Python - Set the environment variable PYTHON
 gyp ERR! find Python - Set the npm configuration variable python:
 gyp ERR! find Python   npm config set python "/path/to/pythonexecutable"
 gyp ERR! find Python For more information consult the documentation at:
 gyp ERR! find Python https://github.com/nodejs/node-gyp#installation
 gyp ERR! find Python **********************************************************
 gyp ERR! find Python 
 gyp ERR! configure error 
 gyp ERR! stack Error: Could not find any Python installation to use
 gyp ERR! stack     at PythonFinder.fail (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/find-python.js:307:47)
 gyp ERR! stack     at PythonFinder.runChecks (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/find-python.js:136:21)
 gyp ERR! stack     at PythonFinder.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/find-python.js:179:16)
 gyp ERR! stack     at PythonFinder.execFileCallback (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/find-python.js:271:16)
 gyp ERR! stack     at exithandler (child_process.js:301:5)
 gyp ERR! stack     at ChildProcess.errorhandler (child_process.js:313:5)
 gyp ERR! stack     at ChildProcess.emit (events.js:198:13)
 gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:246:12)
 gyp ERR! stack     at onErrorNT (internal/child_process.js:415:16)
 gyp ERR! stack     at process._tickCallback (internal/process/next_tick.js:63:19)
 gyp ERR! System Linux 4.19.78-coreos
 gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
 gyp ERR! cwd /app/node_modules/heapdump
 gyp ERR! node -v v10.19.0
 gyp ERR! node-gyp -v v5.0.7
 gyp ERR! not ok 

Alpine image was introduced in https://gitlab.com/gitlab-org/gitter/webapp/-/merge_requests/1787


cc @dcouture

Edited by Eric Eastwood

Merge request reports