Node.js Can';t在docker容器中全局正确安装npm包

Node.js Can';t在docker容器中全局正确安装npm包,node.js,docker,vue.js,docker-compose,Node.js,Docker,Vue.js,Docker Compose,我有一个vue项目。我不想把我的环境留在主机上,我更喜欢和docker打交道。那个么,为什么用这种方式处理节点会如此愚蠢乏味和困难呢?因此,我使用节点docker-compose.yml创建了Dockerfile,并通过hepler节点:alpine容器预安装了一个vue cli项目。然后我要做一件事。但它不起作用!因为找不到我的全局npm包。谷歌没有任何东西能帮助我 docker compose.yml version: '3' services: app: build: .

我有一个vue项目。我不想把我的环境留在主机上,我更喜欢和docker打交道。那个么,为什么用这种方式处理节点会如此愚蠢乏味和困难呢?因此,我使用节点docker-compose.yml创建了Dockerfile,并通过hepler节点:alpine容器预安装了一个vue cli项目。然后我要做一件事。但它不起作用!因为找不到我的全局npm包。谷歌没有任何东西能帮助我

docker compose.yml

version: '3'
services:
  app:
    build: .
    container_name: app
    ports:
      - "8080:8080"
    volumes:
      - "./:/app"
Dockerfile

FROM node:alpine

RUN npm install -g @vue/cli @vue/cli-service-global

WORKDIR /app/app

ENTRYPOINT ["vue-cli-service", "serve"]
(里面有另一个应用程序/app it's ok)

错误是:

[bxp@manjaro vue]$ docker-compose up -d
Removing app
Recreating 801627fa0179_app ... error

ERROR: for 801627fa0179_app  Cannot start service app: OCI runtime create failed: container_linux.go:367: starting container process caused: exec: "vue-cli-service": executable file not found in $PATH: unknown

ERROR: for app  Cannot start service app: OCI runtime create failed: container_linux.go:367: starting container process caused: exec: "vue-cli-service": executable file not found in $PATH: unknown
ERROR: Encountered errors while bringing up the project.
似乎表明二进制文件未安装到您的一个典型位置(名义上为
/usr/local/bin
)。快速修复方法是将安装位置添加到
PATH
变量中

FROM node:alpine
  
RUN npm install -g @vue/cli @vue/cli-service-global

WORKDIR /app/app

ENV PATH="${PATH}:/usr/local/lib/node_modules/@vue/cli-service-global/node_modules/.bin"

ENTRYPOINT ["vue-cli-service", "serve"]