node.js - 在 Docker 上构建 Node js 应用程序

标签 node.js docker dockerfile

我试图运行下面的 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和项目结构

  1. 入口点应为["npm", "run", "payments-api"]
  2. payment-api 应该是 node index.js values/db.json

编辑:

根据提供的信息很难判断,但是

  1. 可能是 index.js 中不需要 json-server
  2. 您试图调用 index.js 中的 json-server 命令,但由于它未全局安装,因此无法找到它

关于node.js - 在 Docker 上构建 Node js 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35908540/

相关文章:

docker - 如何将 docker-compose 配置转换为 dockerfile

linux - 为什么在发布 .net 核心应用程序后我找不到 View

google-chrome - Docker和沙盒中的Chrome/Chromium

node.js - 无法使用 MEAN 堆栈连接到 Mongodb.atlas 集群

javascript - 与 Kenwood TH-D72A 的串行端口通信似乎几乎是不可能的。为什么我无法使用 javascript 读取数据?

javascript - 带有参数的 Typeorm 监听器

json - 使用fluentd进行docker日志记录时如何获取容器和图像名称?

node.js - Google 安全浏览 API 查找 Node.js

sql-server - 声明文件时如何还原数据库?

python - Docker volume - 需要权限才能写入数据库