[英]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-dashboard
和webpack-dev-server
命令,因為它沒有全局安裝。
嘗試將webpack-dashboard
和webpack-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.