如何在 docker FROM node:9.11.2-alpine 上安装纱线?

Tot*_*.js 9 docker yarnpkg

我的码头工人

 - FROM node:9.11.2-alpine
 - RUN apk add yarn
Run Code Online (Sandbox Code Playgroud)

和错误:

yarn (missing):    required by: world[yarn]
[91mWARNING: Ignoring APKINDEX.84815163.tar.gz: No such file or directory
WARNING: Ignoring APKINDEX.24d64ab1.tar.gz: No such file or directory
ERROR: unsatisfiable constraints:
The command '/bin/sh -c apk add yarn' returned a non-zero code: 1

[Sat Jun 23 2018 16:04:57 GMT+0100 (GMT Daylight Time)] ERROR Child process exited with code 1
Run Code Online (Sandbox Code Playgroud)

我不明白为什么将 Yarn 添加到 docker 如此困难。我尝试了很多东西,但都以某种方式失败了。

直到昨天,我才能够在我的 docker 上安装 Yarn,RUN npm install -g yarn但今天早上因错误而停止工作:

https://registry.npmjs.org/yarn 的请求失败,原因:getaddrinfo EAI_AGAIN registry.npmjs.org:443

我尝试过的一些事情:

一天后编辑:

现在,当我做yarn install我得到getaddrinfo EAI_AGAIN registry.yarnpkg.com:443每包错误。

看起来重新启动 docker 修复了它。更多信息请访问https://development.robinwinslow.uk/2016/06/23/fix-docker-networking-dns/

jos*_*sue 14

RUN set -eux \
    & apk add \
        --no-cache \
        nodejs \
        yarn
Run Code Online (Sandbox Code Playgroud)


Rem*_*der 9

最新的yarn软件包仅在边缘存储库中可用。这意味着,您应该按如下方式安装它(包括最新nodejs版本):

RUN apk --no-cache add nodejs yarn --repository=http://dl-cdn.alpinelinux.org/alpine/edge/community
Run Code Online (Sandbox Code Playgroud)


Tot*_*.js 5

听起来很愚蠢,看起来yarn已经安装在这个 docker 版本的 node.js 中。所以根本不需要安装yarn

无论如何不知道为什么RUN npm install -g yarn一天到一天停止工作。

  • 好吧,如果你碰巧需要安装一些东西,解决方案是先调用 `apk update` 来获取包索引,然后 `apk add yarn` 会按预期工作。 (4认同)