webhookd icon indicating copy to clipboard operation
webhookd copied to clipboard

Unable to install nodejs specific version

Open lexoyo opened this issue 3 years ago • 3 comments
trafficstars

Hello,

Thank you for this awesome project !

I use my custom Dockerfile and I need a specific version of nodejs to run the nodejs scripts

I tried these methods in the Dockerfile without success:

Method 1 refuses to install nodejs (nodejs-current-17.9.0-r0: breaks: world[nodejs=14.19.0])

FROM ncarlier/webhookd:1.15.0
RUN apk add --update nodejs=14.19.0

Method 2 installs nvm but node is not available to run the scripts (env: can't execute 'node': No such file or directory)

FROM ncarlier/webhookd:1.15.0
RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
RUN source $HOME/.nvm/nvm.sh && nvm install 14

I would love to use webhookd in silex v3 :100:

Have a nice day

lexoyo avatar Aug 16 '22 07:08 lexoyo

Hello,

thank you for your interest. Using NVM with Alpine is a bit complicated. Here is a working example:

FROM ncarlier/webhookd:1.15.0
SHELL ["/bin/bash", "-c"]
RUN apk add --update alpine-sdk gcompat coreutils
RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
RUN cd $HOME && source $HOME/.nvm/nvm.sh && nvm install 14
RUN cd $HOME && source $HOME/.nvm/nvm.sh && nvm use 14 && node --version

You may have to call nvm in your script to setup the PATH variable.

Have a nice day too

ncarlier avatar Aug 16 '22 16:08 ncarlier

Hello again

Thanks so much for the quick answer

It is indeed what I need, but as you said, I have to "You may have to call nvm in your script to setup the PATH variable."

But then I can not call nodejs scripts directly right? You're saying i need to call a shell script which calls my nodejs script right?

lexoyo avatar Aug 17 '22 10:08 lexoyo

You can call your nodejs script directly as long as the script is executable (chmod +x) and the file header is #!/usr/bin/env node But in this case, node must be in the PATH. Using nvm, you may have to set the path manually (with the node version). Otherwise you create a script that sources nvm and uses the correct version.

ncarlier avatar Aug 17 '22 12:08 ncarlier

Thank you it works as you said

lexoyo avatar Mar 04 '24 08:03 lexoyo