docker 如何升级节点上的Yarn版本:最新的码头形象?

nzkunb0c  于 2022-11-28  发布在  Docker
关注(0)|答案(4)|浏览(180)

节点的正式Docker图像为:https://hub.docker.com/_/node。这是在v1.x中预安装的yarn。我想将yarn升级到v2。但是,我无法确定yarn是如何安装在此映像上的。可能不是通过npm安装的,因为如果我执行npm listyarn没有出现在列表中。我不知道还有其他安装yarn的方法。我想可能是通过linuxkit的软件包管理器,我相信这是node docker映像所使用的发行版。然而,我查看了linuxkit的软件包管理器-据我所知,他们只是使用git clone,在github仓库中有一个/pkg版本的软件包列表。然而,yarn不是其中之一。
也许,我们可以采取一些措施来找到答案:
1.节点上的Yarn安装版本是如何安装的:最新的docker镜像?[也许这会告诉我如何升级它]
1.如何在LinuxKit Docker映像上升级yarn
1.如何查看基本映像的Dockerfile?[即node:latest-是否有相应的Dockerfile,告诉我们映像是如何生成的?如果有,可能会告诉我yarn是如何安装的。]

wmomyfyw

wmomyfyw1#

根据Dockerfile,它在alpine和debian两个版本中都是通过tarbar安装的:

&& curl -fsSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz" \
  && curl -fsSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz.asc" \
  && gpg --batch --verify yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz \
  && mkdir -p /opt \
  && tar -xzf yarn-v$YARN_VERSION.tar.gz -C /opt/ \
  && ln -s /opt/yarn-v$YARN_VERSION/bin/yarn /usr/local/bin/yarn \
  && ln -s /opt/yarn-v$YARN_VERSION/bin/yarnpkg /usr/local/bin/yarnpkg \
  && rm yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz \

您可以使用类似的命令下载并使用ln为您的版本创建符号链接。

ldxq2e6h

ldxq2e6h2#

Best Practices Guide建议进行(简单)本地安装

FROM node:6

ENV YARN_VERSION 1.16.0

RUN yarn policies set-version $YARN_VERSION

在您的Dockerfile中。无论如何,本指南都值得一读;- )

gr8qqesn

gr8qqesn3#

1.根据Dockerfile,您可以将ENV YARN_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

cygmwpex

cygmwpex4#

如果您可以在运行时执行某些操作,
只需使用下面的命令来安装您想要的Yarn版本:

yarn set version stable

2022年11月23日,stable将安装Yarn3.3.0。

相关问题