Open
Description
Is there an existing issue for this?
- I have searched the existing issues
This issue exists in the latest npm version
- I am using the latest npm
Current Behavior
We are running using the node:18
docker image in our CI pipeline running on self hosted Gitlab runner. The runner is hosted on a VM running on GCP and our gitlab is running on GKE v.127.
We started having this error a week ago. This is not a runner issue since we are able to install packages using pip and mix deps.get
for elixir and only npm fails. We are not using any proxy and internet is reachable from docker containers.
The runner is configured with the docker executor.
The exact error is:
$ npm ci
npm ERR! code ETIMEDOUT
npm ERR! syscall connect
npm ERR! errno ETIMEDOUT
npm ERR! network request to https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz failed, reason: connect ETIMEDOUT 104.16.24.34:443
npm ERR! network This is a problem related to network connectivity.
npm ERR! network In most cases you are behind a proxy or have bad network settings.
npm ERR! network
npm ERR! network If you are behind a proxy, please make sure that the
npm ERR! network 'proxy' config is set properly. See: 'npm help config'
npm ERR! A complete log of this run can be found in: /root/.npm/_logs/2023-12-12T04_38_02_576Z-debug-0.log
Cleaning up project directory and file based variables
00:01
ERROR: Job failed: exit code 1
We were able to solve this issue by setting network_mode="host"
in the gitlab runner's config but this breaks the container services communication which we need for the builds.
Expected Behavior
Running npm ci
should fetch the packages from npm registry correctly.
Steps To Reproduce
- Setup Gitlab self hosted on GKE cluster v.127 and add a runner on a GCP VM.
- Using this Gitlab CI snippet:
.app-build: &app-build
stage: app-build
image: node:18
before_script:
- npm ci
script:
- npm run build
- Produces the error
Environment
- npm: 10.2.3
- Node.js:
node:18
docker image - v18.19.0 - OS Name: Debian 11
- npm config:
; node bin location = /usr/local/bin/node
; node version = v18.19.0
; npm local prefix = /builds/our/project
; npm version = 10.2.3
; cwd = /builds/our/project
; HOME = /root
; Run `npm config ls -l` to show all defaults.