【问题标题】:Can't run official Docker tutorial container: npm ERR! missing script: start无法运行官方 Docker 教程容器:npm ERR!缺少脚本:开始
【发布时间】:2020-10-25 15:27:17
【问题描述】:

我正在尝试阅读 Docker 教程的 part 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 错误!缺少脚本:开始。

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

【问题讨论】:

  • 你能发布你正在使用的 dockerfile 吗?是不是和教程里的一模一样?

标签: docker npm npm-scripts


【解决方案1】:

错误消息意味着 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

【讨论】:

  • 见下面我的帖子。真正令人惊讶的是,它可以在 bash 中使用npm start,(也许这是我在节点图像中得到的 npm 版本的问题:FROM node:current-slim?我不确定这里的所有内容.. .) 但是,通过要求他们将最后一行更改为 CMD [ "node", "server.js" ] 来避免其他人遇到同样的问题,将 cmets 发送到 github 或其他任何地方的 Docker 团队不是一个好主意吗?
【解决方案2】:

将这些行添加到 package.json 是有效的

  "scripts": {
  "start": "node server.js"
}

以及重新制作新图像等......

【讨论】:

  • 是不是因为我的回答才发现问题?如果是这样,请接受它以供将来参考。
  • 不,我在浏览器上成功连接到我的应用后才阅读您的答案!苏兹:P
【解决方案3】:

我遇到了同样的问题,但这次缺少的脚本是“调试” package.json 中没有关于这个脚本的注释,只有这个:

  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },

但是 docker-compose.dev.yml 包含这个 命令:npm 运行调试 显然我使用的 npm 有点不同,因为这是 $npm init -y 命令生成的文件。

$npm --version
6.14.4 
$node --version 
v10.19.0

【讨论】:

    猜你喜欢
    • 2023-04-08
    • 1970-01-01
    • 2020-01-11
    • 1970-01-01
    • 2023-03-05
    • 2020-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多