knex种子不在docker环境中工作

时间:2017-11-12 12:25:08

标签: node.js postgresql docker

我正在使用 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

问题是我无法访问日志文件,因为容器会立即停止。

那么,有关正在发生的事情的任何建议吗?

2 个答案:

答案 0 :(得分:1)

如果问题是您无法查看日志以进一步诊断,也许您可​​以查看其中一个loging method

答案 1 :(得分:0)

看起来问题是Docker镜像中没有正确安装库。该库是Bcrypt(我在种子文件中使用它来为一些永久用户散列密码)。所以我最终使用bcrypt更改了bryptjs,现在docker镜像构建并正确运行。