node.js - Corrupted dependencies when npm installing inside docker container -


i building , running following docker-compose file

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 commands go fine, gulp fails following error:

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 not defined admin-gulp_1 |     @ object.<anonymous> (/node/node_modules/gulp-eslint/node_modules/eslint/lib/util/source-code.js:88:1) admin-gulp_1 |     @ module._compile (module.js:409:26) admin-gulp_1 |     @ object.module._extensions..js (module.js:416:10) admin-gulp_1 |     @ module.load (module.js:343:32) admin-gulp_1 |     @ function.module._load (module.js:300:12) admin-gulp_1 |     @ module.require (module.js:353:17) admin-gulp_1 |     @ require (internal/module.js:12:17) admin-gulp_1 |     @ object.<anonymous> (/node/node_modules/gulp-eslint/node_modules/eslint/lib/eslint.js:21:18) admin-gulp_1 |     @ module._compile (module.js:409:26) admin-gulp_1 |     @ object.module._extensions..js (module.js:416:10) sf_admin-gulp_1 exited code 1 

when cat /node/node_modules/gulp-eslint/node_modules/eslint/lib/util/source-code.js see strange characters:

/**  * check see if 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 object     object.freeze(this);     object.freeze(this.lines); }  /**  * split source code multiple lines based on line delimiters  * @param {string} text source code string  * @returns {string[]} array of source code lines  * @public  */ sourcecode.splitlines = function(text) {     return text.split(/\r\n|\r|\n|\u2028|\u2029/g); }; 

if repeat process, error not happen in same file, wrong characters in of files npm installs. if run bash in container , individually npm install specific modules files corrupted, fixed , gulp succeeds. if instead run npm install , gulp in host machine, works fine. doing wrong?

you need set locale correct. docker images don't specify locales.

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 

source docker , locales


Comments