도커 컨테이너 내에 하나의 nodejs 응용 프로그램을 실행하려고합니다. 도커 컨테이너에 들어가 응용 프로그램을 실행하면 모든 것이 기대됩니다. 그러나, 일단 나는 도커 exec을 사용하여 컨테이너에 명령을 보냅니다. 오류가 발생했습니다 TypeError : Object # 'execSync'메서드가 없습니다. 어떻게 노드 애플리케이션의 child_prcess를 도커 컨테이너에서 사용할 수 있습니까?도커 컨테이너 내부에서 실행중인 nodejs 응용 프로그램 내에서 child_process를 사용하는 방법
[email protected]:/apps# cat test.js
var aaa = require('child_process').execSync('echo "aaaaaaaaa"').toString().trim();
console.log(aaa);
[email protected]:/apps# node test.js
aaaaaaaaa
[email protected]:/apps#
[email protected]:~/$ docker exec containername bash -c "cd /apps;node test.js"
/apps/test.js:1
module, __filename, __dirname) { var aaa = require('child_process').execSync('
^
TypeError: Object #<Object> has no method 'execSync'
at Object.<anonymous> (/apps/test.js:1:98)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:902:3
[email protected]:~/$ docker exec containername bash -c "cd /apps/;cat test.js"
var aaa = require('child_process').execSync('echo "aaaaaaaaa"').toString().trim();
console.log(aaa);
방금 docker run -rm -ti node : latest node와 이것을 테스트했는데'require ('child_process')'는 execSync가 있음을 명시 적으로 보여줍니다. –