我正在使用 nodejs 和 knex 来使用某些REST api。 我使用此代码运行迁移和种子
knex.migrate.latest()
.then(() => {
return knex.seed.run();
})
.then(() => {
// migrations are finished, init server
});
我正在使用远程 数据库进行此测试。当我使用node index.js
从 localhost 运行它时,它运行正常,运行迁移,然后数据库填充种子。但是,当我创建 Docker 图像并运行它时,迁移按预期工作,但种子会失败。日志输出如下:
Segmentation fault
npm ERR! code ELIFECYCLE
npm ERR! errno 139
npm ERR! com.app@0.2.0 start: `ENV=prod node index.js`
npm ERR! Exit status 139
npm ERR!
npm ERR! Failed at the com.app@0.2.0 start script.
npm ERR! This is probably not a problem with npm. There is likely
additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2017-11-12T12_20_43_664Z-debug.log
问题是我无法访问日志文件,因为容器会立即停止。
那么,有关正在发生的事情的任何建议吗?
答案 0 :(得分:1)
如果问题是您无法查看日志以进一步诊断,也许您可以查看其中一个loging method
答案 1 :(得分:0)
看起来问题是Docker镜像中没有正确安装库。该库是Bcrypt(我在种子文件中使用它来为一些永久用户散列密码)。所以我最终使用bcrypt
更改了bryptjs
,现在docker镜像构建并正确运行。