看板 Linux 關於我們 聯絡資訊
請問各位我有一個docker container裡裝node跑一個小小的測試JS檔, 當我進入docker container跑都沒問題, 但是如果用docker exec的command卻會發生錯誤 我猜是在docker container外部執行無法取的子進程. 有人有任何經驗如何解決嗎 我在docker container裡測試的腳本和結果 root@17dbb03697b0:/apps# cat test.js var aaa = require('child_process').execSync('echo "aaaaaaaaa"').toString().trim(); console.log(aaa); root@17dbb03697b0:/apps# node test.js aaaaaaaaa root@17dbb03697b0:/apps# 在docker container外測試的結果 user@ip-172-1-1-121:~/$ docker exec containername bash -c "cd /apps/;cat test.js" var aaa = require('child_process').execSync('echo "aaaaaaaaa"').toString().trim(); console.log(aaa); user@ip-172-1-1-121:~/$ 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 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 209.90.32.81 ※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1471641785.A.A21.html
kenduest: nodejs 確認至少是 0.12 版本嗎? 08/21 13:05
kenduest: exec 時候改成傳列出版本參數看看 08/21 13:07
jacobcan118: 感謝, 發現是我裝nvm node時路徑沒有map到/usr/bin/ 08/25 04:07
jacobcan118: /usr/bin/node 加上soft link 後就可以了 08/25 04:57