我正在尝试运行一个docker命令来备份带有Node spawn的数据库。
问题是进程退出时出现代码1。
如果我直接在控制台中尝试这个命令,它会起作用。
我该怎么办?
const backupProcess = spawn('docker', [
'exec', container, 'pg_dumpall', `-U ${dbOptions.user}`, '>', `${path}`
]);
//container: container name
//dbOptions.user: database user
//path: backup file destination
您正在传递'>'作为docker的参数,但如果您在shell中执行此操作,则>由shell而非docker进行解释。
您可以尝试启动一个shell,启动docker并处理输出的重定向。
const backupProcess = spawn('bash',['-c', `docker exec ${container} pg_dumpall -U ${dbOptions.user} > ${path}`]);