Install yarn in a docker container says missing dependency

47,481

robertklep is right - if you check the Dockerfile for Node you'll see they install Node by downloading the TAR, not through APT. You can check this by running an interactive container:

> docker run -it node:6.7.0 bash
root@465fa07437c9:/# dpkg -s nodejs
dpkg-query: package 'nodejs' is not installed and no information is available

You can use NPM in your Dockerfile instead:

FROM node:6.7.0
RUN npm install -g yarn
Share:
47,481
mstruebing
Author by

mstruebing

The path of the righteous man is beset on all sides by the iniquities of the selfish and the tyranny of evil men. Blessed is he who, in the name of charity and good will, shepherds the weak through the valley of darkness, for he is truly his brother's keeper and the finder of lost children. And I will strike down upon thee with great vengeance and furious anger those who would attempt to poison and destroy My brothers. And you will know My name is the Lord when I lay My vengeance upon thee.

Updated on July 09, 2022

Comments

  • mstruebing
    mstruebing almost 2 years

    I'm using the node:6.7.0 image as my docker container and then follow the installation guide for yarn

    sudo apt-key adv --keyserver pgp.mit.edu --recv D101F7899D41F3C3
    echo "deb http://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
    

    Then I do

    apt-get update && apt-get install yarn
    

    But at this point I get an error message which says

    yarn : Depends: nodejs (>= 4.0.0) but it is not going to be installed
    

    I've echoed node -v before the install and it also says 6.7.0

    Anything that I'm missing?

  • mstruebing
    mstruebing over 7 years
    This is working, I already tried this like suggested in the comment. Thank you anyway
  • Daniel Lo Nigro
    Daniel Lo Nigro over 7 years
    This should be fixed by github.com/yarnpkg/yarn/pull/916, which changes the nodejs dependency from "depends" to "recommends" to allow usage of Node.js when it's not installed through apt-get.