2016-04-06 11 views
4

の内側に設置するとき、私は、次のdocker-composeファイル破損依存関係NPMがドッキングウィンドウコンテナ

gulp: 
    image: node:4.4 
    volumes: 
    - ./admin:/node 
    working_dir: /node 
    command: bash -c "npm install && npm install -g gulp-cli && gulp dev" 

npm installコマンドは罰金行くが、その後gulpは、次のエラーで失敗し構築し、実行しています:

admin-gulp_1 | npm info ok 
admin-gulp_1 | /node/node_modules/gulp-eslint/node_modules/eslint/lib/util/source-code.js:88 
admin-gulp_1 | SourceCode.splitLines = function(text) { 
admin-gulp_1 |^
admin-gulp_1 | 
admin-gulp_1 | ReferenceError: SourceCode is not defined 
admin-gulp_1 |  at Object.<anonymous> (/node/node_modules/gulp-eslint/node_modules/eslint/lib/util/source-code.js:88:1) 
admin-gulp_1 |  at Module._compile (module.js:409:26) 
admin-gulp_1 |  at Object.Module._extensions..js (module.js:416:10) 
admin-gulp_1 |  at Module.load (module.js:343:32) 
admin-gulp_1 |  at Function.Module._load (module.js:300:12) 
admin-gulp_1 |  at Module.require (module.js:353:17) 
admin-gulp_1 |  at require (internal/module.js:12:17) 
admin-gulp_1 |  at Object.<anonymous> (/node/node_modules/gulp-eslint/node_modules/eslint/lib/eslint.js:21:18) 
admin-gulp_1 |  at Module._compile (module.js:409:26) 
admin-gulp_1 |  at Object.Module._extensions..js (module.js:416:10) 
sf_admin-gulp_1 exited with code 1 

ときI cat /node/node_modules/gulp-eslint/node_modules/eslint/lib/util/source-code.js私はいくつかの奇妙な文字を参照してください:

/** 
* Check to see if its a ES6 export declaration 
* @param {ASTNode} astNode - qa�� B0�� ���7�sa�� B0�� ���7�sa�� B0�� ���7�va�� B0�� ���7|a�� B0���L0�� 
���$1y���=�s0��1A�$1����=�s0��1A�$1����=�L0���,����=���=�s0��1A�$1!���= B0���޳�7�za��೙7�a��I\�î31A�$11A�$1�B�$1�B�$11s0��1A�$11A�$11s0��1A�$11A�$1!q0��1A�$1I���=p��g�)�node_modules/gulp-plumber/node_modules/gulp-util/node_modules/dateformat/node_modules/meow/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/node_modules/graceful-fs$1��g�)�node_modules/gulp-plumber/node_modules/gulp-util/node_modules/dateformat/node_modules/meow/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-filest:2iC0��@1A�$11s0��1A�$11A�$1!q0��1A�$1����=iC0���y%hc�3�@rU11]0��1A�$1Y�dZ4ٞ0��1A�$11A�$1�S��yA�$1���v<rCommentAfter = tokensAndCommentsStore.getTokenAfter; 

    // don't allow modification of this object 
    Object.freeze(this); 
    Object.freeze(this.lines); 
} 

/** 
* Split the source code into multiple lines based on the line delimiters 
* @param {string} text Source code as a string 
* @returns {string[]} Array of source code lines 
* @public 
*/ 
SourceCode.splitLines = function(text) { 
    return text.split(/\r\n|\r|\n|\u2028|\u2029/g); 
}; 

このプロセスを繰り返すと、同じファイル内でエラーが発生するとは限りませんが、ファイルnpmがインストールされている間は常に間違った文字が表示されます。 次に、コンテナ内でbashを実行して、ファイルが破損している特定のモジュールを個別にnpm installとすると、それらは固定され、gulpが成功します。 代わりにnpm installgulpをホストマシンで実行すると、すべて正常に動作します。 私は何が間違っていますか?

+1

ドッキングウィンドウマシンRAMメモリに関連しているようです。 512MBの代わりに1024MBに設定すると、壊れた依存関係はありません。 – gztomas

答えて

2

ロケールを正しく設定する必要があります。ほとんどのドッカー画像はロケールを指定しません。

FROM ubuntu:lastest 

RUN locale-gen en_US.UTF-8 
ENV LANG en_US.UTF-8 
ENV LANGUAGE en_US:en 
ENV LC_ALL en_US.UTF-8 

ソースDocker and Locales