【问题标题】:How to install @vue/cli in docker image如何在 docker 镜像中安装 @vue/cli
【发布时间】:2019-11-16 18:46:33
【问题描述】:

我正在尝试将 @vue/cli 安装到新的 docker 映像中。上次我是半年前做的,我成功了。但这一次奇怪的事情发生了。

这是我的 Dockerfile

FROM node:lts-alpine

RUN apk add --no-cache git
RUN yarn global add @vue/cli

当我运行docker image build -t vue:alpine . 时,我得到了这样的响应:

Sending build context to Docker daemon  4.096kB
Step 1/3 : FROM node:lts-alpine
 ---> 5d187500daae
Step 2/3 : RUN apk add --no-cache git
 ---> Using cache
 ---> 54e50fd9dcb8
Step 3/3 : RUN yarn global add @vue/cli
 ---> Running in 79e4aa0bf291
yarn global v1.19.1
[1/4] Resolving packages...
error Couldn't find package "function-bind" on the "npm" registry.
info Visit https://yarnpkg.com/en/docs/cli/global for documentation about this command.
warning @vue/cli > @vue/cli-ui > vue-cli-plugin-apollo > nodemon > chokidar > fsevents@1.2.9: One of your dependencies needs to upgrade to fsevents v2: 1) Proper nodejs v10+ support 2) No more fetching
 binaries from AWS, smaller package size
Error: Couldn't find package "arr-diff" on the "npm" registry.
    at MessageError.ExtendableBuiltin (/opt/yarn-v1.19.1/lib/cli.js:721:66)
    at new MessageError (/opt/yarn-v1.19.1/lib/cli.js:750:123)
    at NpmResolver.<anonymous> (/opt/yarn-v1.19.1/lib/cli.js:50683:15)
    at Generator.next (<anonymous>)
    at step (/opt/yarn-v1.19.1/lib/cli.js:304:30)
    at /opt/yarn-v1.19.1/lib/cli.js:315:13
    at runMicrotasks (<anonymous>)
    at processTicksAndRejections (internal/process/task_queues.js:93:5)
Error: Couldn't find package "array-unique" on the "npm" registry.
    at MessageError.ExtendableBuiltin (/opt/yarn-v1.19.1/lib/cli.js:721:66)
    at new MessageError (/opt/yarn-v1.19.1/lib/cli.js:750:123)
    at NpmResolver.<anonymous> (/opt/yarn-v1.19.1/lib/cli.js:50683:15)
    at Generator.next (<anonymous>)
    at step (/opt/yarn-v1.19.1/lib/cli.js:304:30)
    at /opt/yarn-v1.19.1/lib/cli.js:315:13
    at runMicrotasks (<anonymous>)
    at processTicksAndRejections (internal/process/task_queues.js:93:5)
Error: Couldn't find package "array-unique" on the "npm" registry.
    at MessageError.ExtendableBuiltin (/opt/yarn-v1.19.1/lib/cli.js:721:66)
    at new MessageError (/opt/yarn-v1.19.1/lib/cli.js:750:123)
    at NpmResolver.<anonymous> (/opt/yarn-v1.19.1/lib/cli.js:50683:15)
    at Generator.next (<anonymous>)
    at step (/opt/yarn-v1.19.1/lib/cli.js:304:30)
    at /opt/yarn-v1.19.1/lib/cli.js:315:13
    at runMicrotasks (<anonymous>)
    at processTicksAndRejections (internal/process/task_queues.js:93:5)
Error: Couldn't find package "array-unique" on the "npm" registry.
    at MessageError.ExtendableBuiltin (/opt/yarn-v1.19.1/lib/cli.js:721:66)
    at new MessageError (/opt/yarn-v1.19.1/lib/cli.js:750:123)
    at NpmResolver.<anonymous> (/opt/yarn-v1.19.1/lib/cli.js:50683:15)
    at Generator.next (<anonymous>)
    at step (/opt/yarn-v1.19.1/lib/cli.js:304:30)
    at /opt/yarn-v1.19.1/lib/cli.js:315:13
    at runMicrotasks (<anonymous>)
    at processTicksAndRejections (internal/process/task_queues.js:93:5)
Error: Couldn't find package "arr-diff" on the "npm" registry.
    at MessageError.ExtendableBuiltin (/opt/yarn-v1.19.1/lib/cli.js:721:66)
    at new MessageError (/opt/yarn-v1.19.1/lib/cli.js:750:123)
    at NpmResolver.<anonymous> (/opt/yarn-v1.19.1/lib/cli.js:50683:15)
    at Generator.next (<anonymous>)
    at step (/opt/yarn-v1.19.1/lib/cli.js:304:30)
    at /opt/yarn-v1.19.1/lib/cli.js:315:13
    at runMicrotasks (<anonymous>)
    at processTicksAndRejections (internal/process/task_queues.js:93:5)
Error: Couldn't find package "ajv" on the "npm" registry.
    at MessageError.ExtendableBuiltin (/opt/yarn-v1.19.1/lib/cli.js:721:66)
    at new MessageError (/opt/yarn-v1.19.1/lib/cli.js:750:123)
    at NpmResolver.<anonymous> (/opt/yarn-v1.19.1/lib/cli.js:50683:15)
    at Generator.next (<anonymous>)
    at step (/opt/yarn-v1.19.1/lib/cli.js:304:30)
    at /opt/yarn-v1.19.1/lib/cli.js:315:13
    at runMicrotasks (<anonymous>)
    at processTicksAndRejections (internal/process/task_queues.js:93:5)
Error: Couldn't find package "function-bind" on the "npm" registry.
    at MessageError.ExtendableBuiltin (/opt/yarn-v1.19.1/lib/cli.js:721:66)
    at new MessageError (/opt/yarn-v1.19.1/lib/cli.js:750:123)
    at NpmResolver.<anonymous> (/opt/yarn-v1.19.1/lib/cli.js:50683:15)
    at Generator.next (<anonymous>)
    at step (/opt/yarn-v1.19.1/lib/cli.js:304:30)
    at /opt/yarn-v1.19.1/lib/cli.js:315:13
    at runMicrotasks (<anonymous>)
    at processTicksAndRejections (internal/process/task_queues.js:93:5)
Error: Couldn't find package "array-unique" on the "npm" registry.
    at MessageError.ExtendableBuiltin (/opt/yarn-v1.19.1/lib/cli.js:721:66)
    at new MessageError (/opt/yarn-v1.19.1/lib/cli.js:750:123)
    at NpmResolver.<anonymous> (/opt/yarn-v1.19.1/lib/cli.js:50683:15)
    at Generator.next (<anonymous>)
    at step (/opt/yarn-v1.19.1/lib/cli.js:304:30)
    at /opt/yarn-v1.19.1/lib/cli.js:315:13
    at runMicrotasks (<anonymous>)
    at processTicksAndRejections (internal/process/task_queues.js:93:5)
Error: Couldn't find package "function-bind" on the "npm" registry.
    at MessageError.ExtendableBuiltin (/opt/yarn-v1.19.1/lib/cli.js:721:66)
    at new MessageError (/opt/yarn-v1.19.1/lib/cli.js:750:123)
    at NpmResolver.<anonymous> (/opt/yarn-v1.19.1/lib/cli.js:50683:15)
    at Generator.next (<anonymous>)
    at step (/opt/yarn-v1.19.1/lib/cli.js:304:30)
    at /opt/yarn-v1.19.1/lib/cli.js:315:13
    at runMicrotasks (<anonymous>)
    at processTicksAndRejections (internal/process/task_queues.js:93:5)
Error: Couldn't find package "function-bind" on the "npm" registry.
    at MessageError.ExtendableBuiltin (/opt/yarn-v1.19.1/lib/cli.js:721:66)
    at new MessageError (/opt/yarn-v1.19.1/lib/cli.js:750:123)
    at NpmResolver.<anonymous> (/opt/yarn-v1.19.1/lib/cli.js:50683:15)
    at Generator.next (<anonymous>)
    at step (/opt/yarn-v1.19.1/lib/cli.js:304:30)
    at /opt/yarn-v1.19.1/lib/cli.js:315:13
    at runMicrotasks (<anonymous>)
    at processTicksAndRejections (internal/process/task_queues.js:93:5)
Error: Couldn't find package "function-bind" on the "npm" registry.
    at MessageError.ExtendableBuiltin (/opt/yarn-v1.19.1/lib/cli.js:721:66)
    at new MessageError (/opt/yarn-v1.19.1/lib/cli.js:750:123)
    at NpmResolver.<anonymous> (/opt/yarn-v1.19.1/lib/cli.js:50683:15)
    at Generator.next (<anonymous>)
    at step (/opt/yarn-v1.19.1/lib/cli.js:304:30)
    at /opt/yarn-v1.19.1/lib/cli.js:315:13
    at runMicrotasks (<anonymous>)
    at processTicksAndRejections (internal/process/task_queues.js:93:5)
Error: Couldn't find package "json5" on the "npm" registry.
    at MessageError.ExtendableBuiltin (/opt/yarn-v1.19.1/lib/cli.js:721:66)
    at new MessageError (/opt/yarn-v1.19.1/lib/cli.js:750:123)
    at NpmResolver.<anonymous> (/opt/yarn-v1.19.1/lib/cli.js:50683:15)
    at Generator.next (<anonymous>)
    at step (/opt/yarn-v1.19.1/lib/cli.js:304:30)
    at /opt/yarn-v1.19.1/lib/cli.js:315:13
    at runMicrotasks (<anonymous>)
    at processTicksAndRejections (internal/process/task_queues.js:93:5)
Error: Couldn't find package "statuses" on the "npm" registry.
    at MessageError.ExtendableBuiltin (/opt/yarn-v1.19.1/lib/cli.js:721:66)
    at new MessageError (/opt/yarn-v1.19.1/lib/cli.js:750:123)
    at NpmResolver.<anonymous> (/opt/yarn-v1.19.1/lib/cli.js:50683:15)
    at Generator.next (<anonymous>)
    at step (/opt/yarn-v1.19.1/lib/cli.js:304:30)
    at /opt/yarn-v1.19.1/lib/cli.js:315:13
    at processTicksAndRejections (internal/process/task_queues.js:93:5)
Error: Couldn't find package "statuses" on the "npm" registry.
    at MessageError.ExtendableBuiltin (/opt/yarn-v1.19.1/lib/cli.js:721:66)
    at new MessageError (/opt/yarn-v1.19.1/lib/cli.js:750:123)
    at NpmResolver.<anonymous> (/opt/yarn-v1.19.1/lib/cli.js:50683:15)
    at Generator.next (<anonymous>)
    at step (/opt/yarn-v1.19.1/lib/cli.js:304:30)
    at /opt/yarn-v1.19.1/lib/cli.js:315:13
    at processTicksAndRejections (internal/process/task_queues.js:93:5)
Error: Couldn't find package "statuses" on the "npm" registry.
    at MessageError.ExtendableBuiltin (/opt/yarn-v1.19.1/lib/cli.js:721:66)
    at new MessageError (/opt/yarn-v1.19.1/lib/cli.js:750:123)
    at NpmResolver.<anonymous> (/opt/yarn-v1.19.1/lib/cli.js:50683:15)
    at Generator.next (<anonymous>)
    at step (/opt/yarn-v1.19.1/lib/cli.js:304:30)
    at /opt/yarn-v1.19.1/lib/cli.js:315:13
    at processTicksAndRejections (internal/process/task_queues.js:93:5)
Error: Couldn't find package "for-in" on the "npm" registry.
    at MessageError.ExtendableBuiltin (/opt/yarn-v1.19.1/lib/cli.js:721:66)
    at new MessageError (/opt/yarn-v1.19.1/lib/cli.js:750:123)
    at NpmResolver.<anonymous> (/opt/yarn-v1.19.1/lib/cli.js:50683:15)
    at Generator.next (<anonymous>)
    at step (/opt/yarn-v1.19.1/lib/cli.js:304:30)
    at /opt/yarn-v1.19.1/lib/cli.js:315:13
    at processTicksAndRejections (internal/process/task_queues.js:93:5)
Error: Couldn't find package "statuses" on the "npm" registry.
    at MessageError.ExtendableBuiltin (/opt/yarn-v1.19.1/lib/cli.js:721:66)
    at new MessageError (/opt/yarn-v1.19.1/lib/cli.js:750:123)
    at NpmResolver.<anonymous> (/opt/yarn-v1.19.1/lib/cli.js:50683:15)
    at Generator.next (<anonymous>)
    at step (/opt/yarn-v1.19.1/lib/cli.js:304:30)
    at /opt/yarn-v1.19.1/lib/cli.js:315:13
    at processTicksAndRejections (internal/process/task_queues.js:93:5)
Error: Couldn't find package "function-bind" on the "npm" registry.
    at MessageError.ExtendableBuiltin (/opt/yarn-v1.19.1/lib/cli.js:721:66)
    at new MessageError (/opt/yarn-v1.19.1/lib/cli.js:750:123)
    at NpmResolver.<anonymous> (/opt/yarn-v1.19.1/lib/cli.js:50683:15)

我试图在 npmjs.com 上找到其中一些包,它们都可以。 所以看起来,有些东西阻止了 yarn 连接到 npm repo。

有没有人遇到过类似的问题,如何解决?

小更新: 我用 npm (Dockerfile) 尝试过类似的事情:

FROM node:lts-alpine

RUN apk add --no-cache git
RUN npm install -g @vue/cli

几分钟后我得到了:

Sending build context to Docker daemon  4.096kB
Step 1/3 : FROM node:lts-alpine
 ---> 5d187500daae
Step 2/3 : RUN apk add --no-cache git
 ---> Using cache
 ---> 54e50fd9dcb8
Step 3/3 : RUN npm install -g @vue/cli
 ---> Running in 9c8e21b3fcc7
npm ERR! code E404
npm ERR! 404 Not Found - GET https://registry.npmjs.org/statuses
npm ERR! 404 
npm ERR! 404  'statuses@>= 1.5.0 < 2' is not in the npm registry.
npm ERR! 404 You should bug the author to publish it (or use the name yourself!)
npm ERR! 404 It was specified as a dependency of 'http-errors'
npm ERR! 404 
npm ERR! 404 Note that you can also install from a
npm ERR! 404 tarball, folder, http url, or git url.

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2019-11-16T18_48_54_942Z-debug.log
The command '/bin/sh -c npm install -g @vue/cli' returned a non-zero code: 1

【问题讨论】:

  • 对我来说它有效,我使用 debian 9 和 docker 19.03 我做了docker pull node:lts-alpine 然后docker build . 然后docker run -it node:lts-alpine
  • 好吧,我尝试将@vue/cli 安装在一个新的容器中,如您所提到的docker run -it node:lts-alpine yarn global add @vue/cli,但遇到了同样多的错误/
  • 你能发一下你的docker -v吗?
  • 它是Docker version 19.03.4, build 9013bf583a。我认为这是某种网络问题。
  • 你在使用代理吗?如果您只运行命令docker pull node:lts-alpine?您甚至可以尝试构建映像并进入容器并运行 thou 个命令。 docker run -it node:lts-alpine bash

标签: docker npm yarnpkg


【解决方案1】:

所以我想通了,这件事是由node 图像提供的npm(偶尔还有yarn)。当前图像node:13.1.0-alpine 包含npm version 6.12.0

我就是这样解决的:

FROM node:lts-alpine
RUN apk add --no-cache curl
RUN curl -L https://www.npmjs.com/install.sh | sh
RUN npm -v

此 Dockerfile 中使用的脚本由 npm 本身提供,它将更新版本的 npm 安装到映像中。 npm version 6.13.1

我只是构建它,并使用它而不是原始图像。

docker build -t node-updated .
docker run node-updated npm install -g @vue/cli

虽然,它并不能解决yarn的问题。

我很确定这是node 图像的临时问题,因为它很快就会更新。希望有人会觉得它有用。

【讨论】:

    【解决方案2】:

    默认情况下不安装 Yarn。 通过在 Dockerfile 中添加以下行,您可以安装 yarn。

    RUN apk add yarn
    

    apk 命令类似于apt-getyum,但用于高山分布。

    安装yarn后,可以添加下面一行来安装vue-cli和vue-cli-service。就我而言,我需要两者。

    RUN yarn global add @vue/cli @vue/cli-service-global
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-04
      • 2023-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多