这令人沮丧,但我在这里。
我正拼命尝试阅读Docker教程的part 2。
这是我的问题:
为应用程序成功创建镜像后,我尝试使用命令行(sudo) docker run --publish 8000:8080 --detach --name bb bulletinboard:1.0
来运行容器,并允许我通过localhost:8000访问该应用程序。
但是当 checkout docker ps
时,什么都没有,所以我使用docker ps -a
找回了我的容器,并使用STATUS Exited (1)
进行了查找。
然后,我尝试docker logs bb
来查找更多信息,并得到以下信息:npm ERR! missing script: start
。
知道它来自文档,这真是令人惊讶,我不知道下一步该怎么做。如果有人有任何线索,那就太好了。先感谢您
最佳答案
该错误消息表示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
然后转到工作目录并检查是否可以手动启动该应用程序:# 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
关于docker - 无法运行官方Docker教程容器:npm ERR!缺少脚本:开始,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64525430/