首页 > 解决方案 > npm 错误!缺少脚本:服务

问题描述

启动 docker 容器时出错。我正在使用 nodemon 来监听文件更改。

DockerFile

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 新手,无法找出原因。

标签: node.jsdocker

解决方案


在您的 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

推荐阅读