簡體   English   中英

Node & Docker,安裝Node模塊后無法運行腳本

[英]Node & Docker, can't run scripts after installing Node modules

真的很難在這里找出問題。 我正在嘗試在我的工作站上將 WordPress 站點容器化以供開發人員使用。 目的。 (免責聲明:Docker 有點新,目前在一些 Laravel 項目中使用它來實現相同的目的,但尚未將其集成到生產中)。

這是我的docker-compose.yml的相關部分

version: "3"

services:
  ...
  npm:
    build:
      context: .
      dockerfile: ./docker/node/Dockerfile
    container_name: npm
    volumes:
      - ./:/var/www/html
      - /var/www/html/docker/
    working_dir: /var/www/html/wp-content/themes/my-cust-theme
    depends_on:
      - wordpress
    entrypoint: ["npm", "--no-bin-links"]
    networks:
      - wp-net
  ...

networks:
  wp-net:

以下是相關 Dockerfile 的內容,(我在這里有更多內容,但為了調試它已被簡化為這個):

FROM node:12.17.0-alpine3.9
RUN apk --update --no-cache --virtual build-dependencies add \
  git \ 
  libtool \
  python2 \
  nasm \
  libpng-dev \
  autoconf \
  gcc \
  g++ \
  automake \
  make 

我知道這里最好使用多階段構建,或者這里提到的其他方法。 只是在優化容器之前嘗試讓 Node 構建腳本正常運行。

構建容器后:

docker-compose up -d --build

我跑:

docker-compose run --rm npm install

並且這些軟件包似乎安裝成功。 事實上,安裝后運行docker-compose run --rm npm list --depth 0給了我預期的 output。 我可以看到我的package.json中的所有軟件包都已安裝。

我的項目的腳本如下:

"scripts": {
    "debug": " webpack-dev-server --config webpack.dev.js",
    "dev": "webpack-dashboard -- webpack-dev-server --config webpack.dev.js",
    "production": "NODE_ENV=production npx webpack --config webpack.prod.js --progress --hide-modules"
  }

在這一點上我完全迷失的是:如果我跑

docker-compose run --rm npm run dev

output 看起來像:

Creating some-new-wp-site_npm_run ... done

> some-new-wp-site@1.0.0 dev /var/www/html/wp-content/themes/my-cust-theme
> webpack-dashboard -- webpack-dev-server --config webpack.dev.js

sh: webpack-dashboard: not found
npm ERR! code ELIFECYCLE
npm ERR! syscall spawn
npm ERR! file sh
npm ERR! errno ENOENT
npm ERR! some-new-wp-site@1.0.0 dev: `webpack-dashboard -- webpack-dev-server --config webpack.dev.js`
npm ERR! spawn ENOENT
npm ERR!
npm ERR! Failed at the some-new-wp-site@1.0.0 dev script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2021-01-23T15_51_28_095Z-debug

我嘗試運行docker-compose down -v --rmi all並重復此過程並產生相同的結果。

如果沒有npm err log ,我只能猜測問題出在哪里。 可能 npm-cli 找不到webpack-dashboardwebpack-dev-server命令,因為它沒有全局安裝。

嘗試將webpack-dashboardwebpack-dev-server添加到 package.json 內的腳本中。

"scripts": {
    ... your scripts,
    "webpack-dashboard": "webpack-dashboard",
    "webpack-dev-server": "webpack-dev-server"
  }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM