ドッカーコンテナ内でnodejsアプリケーションを1つ実行しようとしています。私がドッカーコンテナに入ってアプリケーションを実行すると、すべてが期待どおりです。しかし、いったん私はドッカーのexecを使ってコマンドをコンテナに送ります。 というエラーが発生しました。TypeError:Object#にはメソッド 'execSync'がありません。どのようにノードアプリケーションのchild_prcessをドッカーコンテナから使用できますか?dockerコンテナ内で実行されている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'が明示的に存在することを示しています。 –