node.js - 从 node.js 中的 docker 容器备份 MongoDB 数据库
问题描述
我的 docker 容器在端口 27018 上运行。当我从终端运行以下命令时,它工作正常 -
docker exec mongodb mongodump -u=Abhishek -p=abhishek --authenticationDatabase=testdb
但是,当我从 node.js 运行相同的命令时,它不起作用。请查看我的以下代码并帮助我调试
import { spawn } from 'child_process';
const backupProcess = spawn('sudo docker exec mongodb mongodump', [
`-u=Abhishek`,
`-p=abhishek`,
`--authenticationDatabase=testdb`
]);
backupProcess.on('error', (err) => {
console.log('Error :: ', err);
});
backupProcess.on('exit', (code, signal) => {
if (code) {
console.log(MessageType.warn, '\n Backup process exited with code ', code);
} else if (signal) {
console.log(MessageType.error, '\n Backup process was killed with signal ', signal);
} else {
console.log(MessageType.success, '\n Successfully backed-up the database ✅ ');
}
});
它给了我以下错误-
Error :: Error: spawn sudo docker exec mongodb mongodump ENOENT
at Process.ChildProcess._handle.onexit (internal/child_process.js:268:19)
at onErrorNT (internal/child_process.js:470:16)
at processTicksAndRejections (internal/process/task_queues.js:84:21) {
errno: 'ENOENT',
code: 'ENOENT',
syscall: 'spawn sudo docker exec mongodb mongodump',
path: 'sudo docker exec mongodb mongodump',
spawnargs: [
'-u=Abhishek',
'-p=abhishek',
'--authenticationDatabase=testdb'
]
}
解决方案
推荐阅读
- javascript - 错误:未捕获(在承诺中)类型错误:_this2.next 不是 reactJS 中的函数
- ansible - How do I pass a dictionary to an ansible ad-hoc command?
- javascript - JavaScript - Performance issues with preloading images using Image constructor
- excel - 如何定义文件夹的路径?
- windows - .Net core 检查现有组的 AD 并创建它
- node.js - access a returned header from previous post in nodejs
- python - 从外部服务器将 Python 数据框插入 Hive
- vue.js - 动态切换表行的可见性 - bootstrap-vue
- .net - 通用主机自动关机
- android - RecyclerView-设置它和项目的透明度