[英]npm ERR! missing script: start error with Docker
當運行docker-compose
啟動我的應用程序時,我收到一個npm ERR! missing script: start
npm ERR! missing script: start
盡管已指定啟動腳本,但仍啟動
package.json是
{
"name": "myapp",
"version": "0.0.0",
"private": true,
"scripts": {
"start": "node ./bin/www"
},
"dependencies": {
"body-parser": "~1.17.1",
"cookie-parser": "~1.4.3",
"debug": "~2.6.3",
"ejs": "~2.5.6",
"express": "~4.15.2",
"mongoose": "^4.11.1",
"morgan": "~1.8.1",
"serve-favicon": "~2.4.2"
}
}
和docker-compose.yml是
version: "2"
services:
web:
build: .
volumes:
- ./:/app
ports:
- "3500:3500"
有兩件事對我來說沒有意義:
不確定是否需要,但Dockerfile是
FROM node:argon
RUN mkdir /app
WORKDIR /app
COPY package.json /app
RUN npm install
COPY . /app
EXPOSE 3500
ENV PORT 3500
CMD ["npm", "start"]
編輯:我正在使用docker run -p 3500:3500 app
和docker-compose up
我對此並不陌生,因此可能會丟失一些東西,但現在有點卡住了。
您可以嘗試刪除卷部分- ./:/app
看起來/ app是在容器中創建的,但是隨后您將主機目錄掛載到/ app,從而將原始的/ app隱藏在容器中。
您收到的錯誤是您看不到./bin/www目錄。
請按照以下步驟操作。
希望對您有所幫助。
加
"docker":xxxxx
"docker-build":xxxxx
像這樣的地雷
"docker": "node --experimental-modules ./signal-server",
"docker-build": "docker build -t node-web-development/signalauth ."
您的包json文件
檢查與定義“開始”腳本docker-compose.yml
文件所在的目錄中是否存在package.json
文件。 如果不是,那可能是導致錯誤的原因,因為您正在將當前目錄裝載到容器的應用程序目錄中。 更好的設置是將節點應用程序放在其自己的子目錄中,並在其中放置docker-compose文件。 然后,可以通過將其提供給docker-compose.yml
文件的build條目來指向您的節點應用程序目錄:
version: "2"
services:
web:
build: ./yourNodeAppDir
volumes:
- ./:/app # is this necessary?
ports:
- "3500:3500"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.