[英]npm ERR! missing script: serve
啟動 docker 容器時出錯。 我正在使用 nodemon 來監聽文件更改。
文件
FROM node:alpine
WORKDIR '/app'
COPY package.json .
RUN npm install
COPY . .
CMD ["npm","run","serve"]
包.json
{
"dependencies": {
"express": "*",
"nodemon": "*"
},
"scripts": {
"serve": "nodemon index.js",
"start": "node index.js"
}
}
構建命令
docker build -f Dockerfile.dev -t test/nodeapp1 .
cmdLine docker cmd ->
docker run -p 3000:8080 -v /app/node_modules -v pwd:/app test/nodeapp1.
我是 docker 新手,無法找出原因。
在您的 dockerfile 中進行此更改
FROM node:alpine
ENV NPM_CONFIG_PREFIX=/home/node/.npm-global
ENV HOME=/home/node/app
ENV PATH="/home/node/.npm-global/bin:${PATH}"
USER node
RUN npm install -g nodemon
RUN mkdir -p ${HOME}
WORKDIR ${HOME}
ADD package.json ${HOME}
RUN cd ${HOME} && npm install
CMD [ "npm" ,"run", "serve" ]
構建 docker 容器
docker build -f Dockerfile -t prac/nodeApp .
運行docker容器
docker run -p 3000:8080 -v /app/node_modules -v pwd:/app prac/nodeApp
將 WORKDIR 更改為新值有效。
FROM node:alpine
WORKDIR '/dir'
COPY package.json .
RUN npm install
COPY . .
CMD [ "npm" ,"run", "serve" ]
你的docker run -v
選項是錯誤的。 你可能真的想寫
docker run ... -v $PWD:/app ...
docker run ... -v $(pwd):/app ...
使用當前目錄(分別來自PWD
環境變量或pwd
命令)作為綁定安裝。
我傾向於不推薦這種模式,特別是對於主機依賴關系很小並且您與其他容器交互不多的 Node 應用程序。 僅在本地安裝 Node(如果您還沒有它)並針對它進行實時開發可能更容易; 當您想使用 Docker 部署應用程序時,請使用您COPY
到映像中的版本,並且不要單獨使用-v
選項在其上注入您的代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.