2017-07-10 12 views
1

私はこのエラーで一日中固執しています。ドッカーコンテナを実行しようとしたときにエラーSegmentation fault (core dumped)が発生しました。ドッカーノードアルパイン8セグメンテーションフォールト(コアダンプされた)

このエラーを再現するために、私はenvとコードを提供します。

FROM node:8.1.3-alpine 

RUN apk add --no-cache --update krb5-dev alpine-sdk python 

RUN mkdir -p /usr/src/app 
WORKDIR /usr/src/app 

COPY package.json /usr/src/app/ 
RUN npm install 
COPY . /usr/src/app 

EXPOSE 3000 

CMD [ "npm", "start" ] 

問題は私のnpm startスクリプトを起動している、それは常に、このコマンド"test-prod": "mocha test/**/*",を持ってnpm run test-prodで失敗:

以下の最初はDockerfile、何も特別です。これをnpmから削除すると、エラーなしでサイトが展開されます。

const { describe, it, before, after } = require('mocha'); 
const request = require('supertest'); 

const app = require('../../../app.js'); 
const User = require('../../../models/User'); 

const agent = request.agent(app); 
//some tests 

私はそれが認証を要求する新しいマングースバージョン4.11、と結合しており、オプションで渡すことができることとします

テスト-PRODはsupertestでapp.jsをインポートするこの最初のテストから開始されますオブジェクトが、私はそれを渡すとき、それは間違いだということを私に警告します:

the options [user] is not supported 
the options [pass] is not supported 

本体下の最後にapp.js:

require('dotenv').config(); 

const express = require('express'); 
const path = require('path'); 
const favicon = require('serve-favicon'); 
const logger = require('morgan'); 
const cookieParser = require('cookie-parser'); 
const bodyParser = require('body-parser'); 
const session = require('express-session'); 
const mongoose = require('mongoose'); 
const MongoStore = require('connect-mongo')(session); 

const routes = require('./routes'); 

const app = express(); 

const URI = process.env.NODE_ENV === 'development' || process.env.NODE_ENV === 'test' ? 'mongodb://localhost/mulibwanji' : process.env.MONGODB_URI; 

mongoose.connect(URI, { // In URI also I have user and pass as expected 
    useMongoClient: true, 
    user: 'login', 
    pass: 'pass', 
}); 

そしてドッカーログからのエラー:

2017-07-10T18:53:49.796105113Z 
2017-07-10T18:53:49.802949762Z 
2017-07-10T18:53:49.814928711Z Local strategy authentication 
2017-07-10T18:53:49.826690115Z  Login 
2017-07-10T18:53:51.226982330Z Segmentation fault (core dumped) 
2017-07-10T18:53:51.258175441Z npm info lifecycle [email protected]~test-prod: Failed to exec test-prod script 
2017-07-10T18:53:51.258270885Z npm ERR! code ELIFECYCLE 
2017-07-10T18:53:51.258406077Z npm ERR! errno 139 
2017-07-10T18:53:51.258445569Z npm ERR! [email protected] test-prod: `mocha test/**/*` 
2017-07-10T18:53:51.258519335Z npm ERR! Exit status 139 
2017-07-10T18:53:51.258539503Z npm ERR! 
2017-07-10T18:53:51.258579954Z npm ERR! Failed at the [email protected] test-prod script. 
2017-07-10T18:53:51.258617042Z npm ERR! This is probably not a problem with npm. There is likely additional logging output above. 

そして、ここでスタックトレース:

0 info it worked if it ends with ok 
1 verbose cli [ '/usr/local/bin/node', '/usr/local/bin/npm', 'start' ] 
2 info using [email protected] 
3 info using [email protected] 
4 verbose run-script [ 'prestart', 'start', 'poststart' ] 
5 info lifecycle [email protected]~prestart: [email protected] 
6 silly lifecycle [email protected]~prestart: no script for prestart, continuing 
7 info lifecycle [email protected]~start: [email protected] 
8 verbose lifecycle [email protected]~start: unsafe-perm in lifecycle true 
9 verbose lifecycle [email protected]~start: PATH: /usr/local/lib/node_modules/npm/bin/node-gyp-bin:/usr/src/app/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin 
10 verbose lifecycle [email protected]~start: CWD: /usr/src/app 
11 silly lifecycle [email protected]~start: Args: [ '-c', 
11 silly lifecycle 'npm run build && npm run test-prod && npm run lint && npm run update-schema && node ./bin/www' ] 
12 silly lifecycle [email protected]~start: Returned: code: 139 signal: null 
13 info lifecycle [email protected]~start: Failed to exec start script 
14 verbose stack Error: [email protected] start: `npm run build && npm run test-prod && npm run lint && npm run update-schema && node ./bin/www` 
14 verbose stack Exit status 139 
14 verbose stack  at EventEmitter.<anonymous> (/usr/local/lib/node_modules/npm/lib/utils/lifecycle.js:283:16) 
14 verbose stack  at emitTwo (events.js:125:13) 
14 verbose stack  at EventEmitter.emit (events.js:213:7) 
14 verbose stack  at ChildProcess.<anonymous> (/usr/local/lib/node_modules/npm/lib/utils/spawn.js:40:14) 
14 verbose stack  at emitTwo (events.js:125:13) 
14 verbose stack  at ChildProcess.emit (events.js:213:7) 
14 verbose stack  at maybeClose (internal/child_process.js:897:16) 
14 verbose stack  at Process.ChildProcess._handle.onexit (internal/child_process.js:208:5) 
15 verbose pkgid [email protected] 
16 verbose cwd /usr/src/app 
17 verbose Linux 4.11.9-coreos 
18 verbose argv "/usr/local/bin/node" "/usr/local/bin/npm" "start" 
19 verbose node v8.1.3 
20 verbose npm v5.0.3 
21 error code ELIFECYCLE 
22 error errno 139 
23 error [email protected] start: `npm run build && npm run test-prod && npm run lint && npm run update-schema && node ./bin/www` 
23 error Exit status 139 
24 error Failed at the [email protected] start script. 
24 error This is probably not a problem with npm. There is likely additional logging output above. 
25 verbose exit [ 139, true ] 

私はそんなに何か提案に感謝します、ありがとう。

+0

プロジェクトで直接または間接にコンパイルされたアドオンを使用していますか?もしそうなら、あなたはコンテナの中で 'npm rebuild'する必要があります。 – mscdex

+0

@mscdex私は確信していませんが、その場合に備えて、問題は解決していません( –

+0

これは解決しましたか?私は同様の問題に遭遇しています。ノード8のv8バージョン。https://github.com/nodejs/node/issues/14069 – jishi

答えて

4

bcryptのように、musc alpine libcと互換性のないbcryptのコンパイル済みのバージョンがアップロードされているようです。

RUN npm rebuild bcrypt --build-from-source

をそして、それは自動的に作業を開始しました:私は私のDockerfileに以下を追加しました。私は7に戻すことができませんでした。なぜなら、バイナリに互換性がないという別の問題があるからです。

bcryptは、あなたの場合、二次的な依存関係にあり、あなたの行動を説明することができます。

私にとっては、7月7日に作業を停止しました。 bcryptの最新リリースは2月に公開されましたが、私はまだリリースを "更新"することが可能だと思うし、その日にコンパイル済みのバージョンを追加した可能性もあります。

関連する問題