docker - 无法运行官方 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 错误!缺少脚本:开始。
这令人惊讶,因为知道它来自文档,我不知道下一步该做什么。如果有人有任何线索,那就太好了。先感谢您
解决方案
错误消息意味着 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
推荐阅读
- r - 在 R 中安装 lightgbm
- java - getDownloadUrl 函数不返回正确的 url
- node.js - NodeJS 对传出 TCP 连接施加限制,源地址对于不同主机的连接应该是唯一的
- c# - 如何安排 c# 脚本在 AWS 上运行?
- c# - 从 C# 执行 python
- python - 如何使用 pandas 读取非结构化 csv 文件
- batch-file - 从文本文件中复制每第 n 行
- django - 使用 Docker、nginx 和 gunicorn 提供 Django 静态文件
- wordpress - 在 wordpress 配置 htaccess 之后,它给出了 not found
- javascript - 如何在画布中获取用户绘制线的坐标