首页 > 解决方案 > 无法运行官方 Docker 教程容器:npm ERR!缺少脚本:开始

问题描述

我正在尝试阅读 Docker 教程的第 2 部分。

这是我的问题:

为应用程序成功创建映像后,我尝试(sudo) docker run --publish 8000:8080 --detach --name bb bulletinboard:1.0运行容器并允许我在 localhost:8000 访问应用程序的命令行。

但是在结账的时候docker ps,什么都没有,所以我曾经docker ps -a把我的容器找回来,然后用STATUS Exited (1). 然后我试图docker logs bb找出更多,并得到这个:

npm 错误!缺少脚本:开始。

这令人惊讶,因为知道它来自文档,我不知道下一步该做什么。如果有人有任何线索,那就太好了。先感谢您

标签: dockernpmnpm-scripts

解决方案


错误消息意味着 npm 找不到包含名为 start 的脚本的 package.json 文件。因此,请确保您的 package.json 包含一个名为 start 的脚本!可能已经是问题了。

// Simple package.json example that contains a script with name test.
{
    "scripts": {
      "test": "echo \"Error: no test specified\" && exit 1"
    },
}

当您查看教程的 dockerfile 时:

这确保命令在特定文件夹中执行,例如复制文件:

# Set the working directory.
WORKDIR /usr/src/app

这确保将 package.json 文件复制到工作目录中:

# Copy the file from your host to your current location.
COPY package.json .

这里它定义了当你运行容器时 npm start 将被执行:

# Run the specified command within the container.
CMD [ "npm", "start" ]

为了进一步调查,我将执行以下命令来启动容器:

docker run -it -d <container-id> /bin/sh

然后去workdir查看是否可以手动启动app:

# Go to workdir
cd /usr/src/app
# Here check if the package.json is part of the directory.
ls
# Manually run npm script
npm start

推荐阅读