繁体   English   中英

无法在docker机器上安装npm模块

[英]Can't install npm module on docker machine

我是Docker的新手,我在Windows上遇到问题,
在我的Docker机器上运行npm i出现错误:

panel_1  | > phantomjs-prebuilt@2.1.16 install /var/www/html/node_modules/phantomjs-prebuilt
panel_1  | > node install.js
panel_1  |
panel_1  | module.js:550
panel_1  |     throw err;
panel_1  |     ^
panel_1  |
panel_1  | Error: Cannot find module 'readable-stream'
panel_1  |     at Function.Module._resolveFilename (module.js:548:15)
panel_1  |     at Function.Module._load (module.js:475:25)
panel_1  |     at Module.require (module.js:597:17)
panel_1  |     at require (internal/module.js:11:18)
panel_1  |     at Object.<anonymous> (/var/www/html/node_modules/concat-stream/index.js:1:78)
panel_1  |     at Module._compile (module.js:653:30)
panel_1  |     at Object.Module._extensions..js (module.js:664:10)
panel_1  |     at Module.load (module.js:566:32)
panel_1  |     at tryModuleLoad (module.js:506:12)
panel_1  |     at Function.Module._load (module.js:498:3)

我的撰写:

  panel:
    build: './panel'
    volumes:
      - ./panel:/var/www/html
    command: make init_dev

我的Dockerfile:

FROM php:7.2-fpm

RUN apt-get update && apt-get install -y \
    openssl \
    git \
    unzip \
    libzip-dev \
    wget \
    gnupg

# NodeJs
RUN wget -qO- https://deb.nodesource.com/setup_8.x | bash -

RUN apt-get install -y nodejs
RUN apt-get install -y build-essential

# Composer
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer

RUN docker-php-ext-install mysqli pdo pdo_mysql zip bcmath

WORKDIR /var/www/html

makefile init_dev:

composer install
npm i
npm run dev

已经花了一天的时间解决它。 我试图降级Phantomjs /升级npm /更改全局node_modules的权限,但没有任何帮助。 在本地就可以了。


刚刚发现,不使用volumes就可以成功安装npm。

似乎由于Windows挂载文件夹而发生。 因为不支持npm尝试添加的符号链接。 我的解决方法如下所示:

COPY . /var/www/temp

WORKDIR /var/www/temp

RUN npm i

WORKDIR /var/www/html

然后,我只需使用CMD复制完成的模块即可:

cp -r ../temp/node_modules ./

看起来像拐杖,但它可以帮助某人

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM