我有一个Express应用程序,我在Kubernetes集群中使用了该应用程序。
这个应用程序是我的微服务架构研究的认证服务。
我使用Skaffold dev命令为这个应用程序应用Kubernetes。
我的Dockerfile是这样的:
FROM node:alpine
WORKDIR /app
COPY package.json .
RUN npm install
COPY . .
CMD ["npm", "start"]
我用“Scaffold dev”命令运行它
我得到这样的错误:
...
...
Deployments stabilized in 3.752 seconds
Watching for changes...
[auth] npm notice
[auth] npm notice New patch version of npm available! 7.5.1 -> 7.5.4
[auth] npm notice Changelog: <https://github.com/npm/cli/releases/tag/v7.5.4>
[auth] npm notice Run `npm install -g npm@7.5.4` to update!
[auth] npm notice
[auth] npm ERR! path /app
[auth] npm ERR! command failed
[auth] npm ERR! signal SIGTERM
[auth] npm ERR! command sh -c node server.js
[auth]
[auth] npm ERR! A complete log of this run can be found in:
[auth] npm ERR! /root/.npm/_logs/2021-02-19T16_46_28_956Z-debug.log
还有我的package.json文件:
{
"name": "authservice",
"version": "1.0.0",
"description": "Auth Service",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "node server.js"
},
"keywords": [
"auth",
"user"
],
"author": "",
"license": "ISC",
"dependencies": {
"bcrypt": "^5.0.0",
"body-parser": "^1.19.0",
"dotenv": "^8.2.0",
"express": "^4.17.1",
"express-rate-limit": "^5.2.3",
"jsonwebtoken": "^8.5.1",
"mongoose": "5.10.19",
"morgan": "^1.10.0",
"multer": "^1.4.2"
},
"devDependencies": {
"nodemon": "^2.0.6"
}
}
如何解决此错误?
2条答案
按热度按时间yruzcnhs1#
我假设您在
package.json
中错误地指定了您的脚本,或者您的脚本不是server.js
。对你的问题进行最小程度的重复是有效的:
使用Node.JS入门指南中的示例,并做一个小调整:https://nodejs.org/en/docs/guides/getting-started-guide/
注意将
const hostname = '127.0.0.1';
更改为const hostname = '0.0.0.0';
这是从主机访问容器化应用程序所必需的。添加一个package.json,因为您有一个package.json,并且要显示
npm start
:package.json
:注意我认为
npm start
默认为"start": "node server.js"
使用您的
Dockerfile
和:产量:
注意
docker run
将容器的:3000
端口绑定到主机的:7777
,只是为了表明这些端口不需要相同。然后道:
产量:
inn6fuwd2#
遇到类似问题。请检查活动探测和就绪探测路径。