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