2016-04-06 5 views
4

Ich baue und läuft die folgende docker-compose DateiBeschädigter Abhängigkeiten, wenn npm Installation innerhalb Docker Container

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 Befehle gehen in Ordnung, aber dann nicht gulp mit dem folgenden Fehler:

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 

Als ich cat /node/node_modules/gulp-eslint/node_modules/eslint/lib/util/source-code.js Ich sehe seltsame Zeichen:

/** 
* 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); 
}; 

Wenn ich den Vorgang wiederholen, tritt der Fehler nicht immer in der gleichen Datei passieren, aber es ist immer über falsche Zeichen in eine der Dateien npm installiert. Wenn ich dann bash in den Behälter laufen und individuell npm install die spezifischen Module, deren Dateien beschädigt sind, dann werden sie fixiert und gulp erfolgreich ist. Wenn ich stattdessen npm install und gulp in der Host-Maschine laufen, funktioniert alles einwandfrei. Was mache ich falsch?

+1

Es scheint der Docker-Maschine RAM-Speicher verbunden zu sein. Als ich es 1024 MB statt 512 MB gesetzt, es gibt keine beschädigten Abhängigkeiten. – gztomas

Antwort

2

Sie benötigen die locale richtig einzustellen. Die meisten Docker-Images geben keine Locales an.

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 

Quelle Docker and Locales

Verwandte Themen