NodeJs Spawn Docker 命令

NodeJs Spawn Docker commands

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