Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Using gcr.io/distroless/nodejs20-debian12 image but node and npm commands not found #1637

Open
semihural-tomtom opened this issue Aug 7, 2024 · 3 comments

Comments

@semihural-tomtom
Copy link

I'm trying to run my Node.js application using the gcr.io/distroless/nodejs20-debian12:debug image. However, when I execute my application, I get the following error:

I am using the npx command in my docker-compose file, but it seems like node and npm are not installed in the container. Why are the node and npm commands not found in the gcr.io/distroless/nodejs20-debian12:debug image?

How can I run npx commands using a distroless Node.js image?

docker logs -f 33ab810a0a37

node:internal/modules/cjs/loader:1148
  throw err;
  ^

Error: Cannot find module '/app/npx'
    at Module._resolveFilename (node:internal/modules/cjs/loader:1145:15)
    at Module._load (node:internal/modules/cjs/loader:986:27)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:174:12)
    at node:internal/main/run_main_module:28:49 {
  code: 'MODULE_NOT_FOUND',
  requireStack: []
}

Node.js v20.16.0

It seems like the Node.js runtime is not available. Here are the details when I run the container interactively:

docker run --entrypoint=sh -ti wt/collector:v1

WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
/app # cat /etc/*release*
PRETTY_NAME="Distroless"
NAME="Debian GNU/Linux"
ID="debian"
VERSION_ID="12"
VERSION="Debian GNU/Linux 12 (bookworm)"
HOME_URL="https://github.com/GoogleContainerTools/distroless"
SUPPORT_URL="https://github.com/GoogleContainerTools/distroless/blob/master/README.md"
BUG_REPORT_URL="https://github.com/GoogleContainerTools/distroless/issues/new"
/app # node -v
sh: node: not found
/app # npm -v
sh: npm: not found
/app #
@loosebazooka
Copy link
Member

We intentionally don't include npx: see fdd0b48 for removal.

node should be available, but maybe not on the path in debug. Try running it directly /nodejs/bin/node

@semihural-tomtom
Copy link
Author

@loosebazooka is there any way to install this manually?

@loosebazooka
Copy link
Member

loosebazooka commented Sep 5, 2024

you could drop it in the container using a build of some kind. Would npm exec not work for you? I don't know enough about npm.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants