Для docker.run()
, потоки [process.stdout
, process.stderr
] - это то место, куда передаются базовые данные stdio.
Измените эти аргументы на доступные для записи потоки, которыми вы управляете. Вы можете использовать что-то вроде потока памяти , файла или реализовать stream самостоятельно.
const Docker = require('dockerode')
const streams = require('memory-streams')
const docker = new Docker()
const stdout = new streams.WritableStream()
const stderr = new streams.WritableStream()
docker.run(
'debian:10',
['sh', '-c', 'echo test; echo testerr >/dev/stderr; echo test3'],
[stdout, stderr],
{ Tty: false }
)
.then(([ res, container ]) => {
console.log(res)
console.log('stdout: %j', stdout.toString())
console.log('stderr: %j', stderr.toString())
return container.remove()
})
.catch((error) => console.log(error))