NodeJ的派生Docker命令



我正在尝试运行一个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}`]);

最新更新