【问题标题】:Can't properly install npm package globally in docker container无法在 docker 容器中全局正确安装 npm 包
【发布时间】:2021-07-08 20:18:49
【问题描述】:

我有一个 vue 项目。我不想将我的环境保留在我的主机上,我更喜欢与 docker 打交道。那么,为什么以这种方式处理节点是如此愚蠢而乏味且难以处理?所以我用节点创建了 Dockerfile,docker-compose.yml 并通过 hepler node: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里面还有一个app没关系)

还有错误:

[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.

【问题讨论】:

    标签: node.js docker vue.js docker-compose


    【解决方案1】:

    documentation 似乎表明二进制文件未安装到您的典型位置之一(名义上为/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"]
    

    【讨论】:

      猜你喜欢
      • 2020-10-23
      • 2015-03-15
      • 2019-06-26
      • 1970-01-01
      • 1970-01-01
      • 2015-03-25
      • 2012-03-16
      • 1970-01-01
      • 2018-05-25
      相关资源
      最近更新 更多