The official docker image for node is: https://hub.docker.com/_/node. This comes with yarn
pre-installed at v1.x. I want to upgrade yarn
to v2. However, I can’t tell how yarn
was installed on this image. It’s presumably not via npm
because if I do npm list
, yarn
does not show up in the list. I don’t know of another way to install yarn
. I thought maybe it was via the package manager for linuxkit
, which I believe is the distribution used by the node docker image. However I looked at the package-manager for linuxkit – as I understand it they just use git clone and there are a list of packages available in /pkg
in the github repository. However, yarn
isn’t one of those.
Some steps towards an answer, maybe:
- How is the installed version of yarn on node:latest docker image installed? [Maybe that will inform me as to how I can upgrade it]
- How can I upgrade
yarn
on a LinuxKit docker image? - How can I see the Dockerfile for the base image? [I.e.
node:latest
– is there a Dockerfile for that which tells us how the image was generated? If so that might tell me howyarn
was installed.]
4
Answers
Dockerfile
, you can change theENV YARN_VERSION
to a special version.https://github.com/nodejs/docker-node/blob/main/18/alpine3.16/Dockerfile#L77
https://github.com/nodejs/docker-node#image-variants
https://github.com/nodejs/docker-node/blob/main/versions.json
According to Dockerfile it is installed via tarbar in both in alpine and debian versions:
You can use the similar commands to download and use
ln
to create symlink for your version like above.The Best Practices Guide recommends for (simple) local installs
in your Dockerfile. This guide is worth to be read anyway 😉
If you can do something on runtime,
simply use below command to install the Yarn version you want:
On 2022-11-23,
stable
will install Yarn 3.3.0.