2017-11-12 19 views
0

私は、いくつかのREST APIにnodejsknexを使用しています。 は、私は、このテストのためにリモートデータベースを使用していた種子knock seedがドッカー環境で動作していません

knex.migrate.latest() 
.then(() => { 
    return knex.seed.run(); 
}) 
.then(() => { 
    // migrations are finished, init server 

}); 

移行を実行するには、このコードを使用してlocalhostから実行すると、node index.jsがすべて正常に実行され、移行が実行され、データベースにシードが設定されます。ただし、Dockerイメージを作成して実行すると、移行が正常に機能しますが、シードが失敗します。ログの出力は次のようになります。

Segmentation fault 
npm ERR! code ELIFECYCLE 
npm ERR! errno 139 
npm ERR! [email protected] start: `ENV=prod node index.js` 
npm ERR! Exit status 139 
npm ERR! 
npm ERR! Failed at the [email protected] 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 

問題は、imediatellyコンテナが停止するため、ログファイルに到達できません。

何が起こっているかについてのご意見はありますか?

+1

Dockerfileを共有できますか?アプリケーションフォルダをどこかにマップしていますか?どのようにドッカーのコンテナを始めるのですか? 'node_modules'フォルダに何かが正しく動作していないようです。 – Stefano

答えて

1

問題は、あなたが、さらに診断のログを見ることがカントということであれば、多分あなたはこれらのloging method

+0

良いソース、10倍 – DraganescuValentin

0

の一つで見ることができ、問題がドッカーに正しくライブラリにインストールされていなかったように見えます画像。ライブラリはBcryptです(私はシードファイルでそれを使用していくつかの永久的なユーザーのパスワードをハッシュする)。だから私はをbryptjsに変更しました。そして、ドッカー画像が正しく構築されて実行されます。

関連する問題