我试图运行下面的 docker 文件
FROM node:latest
VOLUME /data
COPY package.json /data/
WORKDIR /data
RUN npm install
COPY . /data/
ENTRYPOINT ["npm", "run", "nodeApp"]
我能够构建该项目,没有任何错误,但在运行时抛出 Node 模块未找到错误。
更新:它抛出“json-server”在index.js文件中未找到异常
我的包结构如下,
data
db.json
Dockerfile
index.js
package.json
Package.json文件如下,
{
"name": "node-api",
"version": "0.0.1",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"nodeApp": "node index.js data/db.json"
},
"author": "",
"license": "ISC",
"dependencies": {
"json-server": "^0.8.2",
"lowdb": "^0.10.2",
"node-uuid": "^1.4.7"
}
}
更新: index.js 文件
"use strict";
var jsonServer = require('json-server');
var low = require('lowdb');
var uuid = require('node-uuid');
var fs = require('fs');
var db = JSON.parse(fs.readFileSync(process.argv[2]));
var writeDb = low(process.argv[2]);
var server = jsonServer.create();
server.use(jsonServer.defaults());
var router = jsonServer.router(db);
router.db._.id = 'id';
router.render = function (req, res) {
return enhance(req, res);
};
server.use('/api', router);
server.use(router);
server.listen(8081);
function enhance(req, res) {
return res.jsonp(res.locals.data); // do no processing
}
最佳答案
基于您的package.json
和项目结构
- 入口点应为
["npm", "run", "payments-api"]
payment-api
应该是node index.js values/db.json
编辑:
根据提供的信息很难判断,但是
- 可能是
index.js
中不需要json-server
- 您试图调用
index.js
中的json-server
命令,但由于它未全局安装,因此无法找到它
关于node.js - 在 Docker 上构建 Node js 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35908540/