gpt4 book ai didi

javascript - 如何使用 NodeJS dokerode 库获取进程的输出?

转载 作者:行者123 更新时间:2023-11-30 06:14:12 26 4
gpt4 key购买 nike

var Docker = require('dockerode');
var docker = new Docker({socketPath: '/var/run/docker.sock'});
var container = docker.getContainer('740aae30d312');
let params = {
Cmd: ['sh','-c','ls -a $URL'],
Env: ['URL=/home'],
AttachStdout: true,
AttachStderr: true,
}
container.exec(params,(err, exec) => {
err && console.error(err);
exec.start({ hijack: true, stdin: false },
function(err, stream) {
docker.modem.demuxStream(stream, process.stdout, process.stderr);
});
},
);

目前,此代码会在控制台上显示容器主目录中的文件列表。我需要同样的东西,但在一个变量中

最佳答案

process.stdout 是一个流,您可以直接通过管道传输到它,而不是读取每个 block 并使用 docker.modem.demuxStream(stream, process.stdout, process.stderr);

stream.pipe(process.stdout);   
var Docker = require('dockerode');
var docker = new Docker({socketPath: '/var/run/docker.sock'});
var container = docker.getContainer('471e865f0a96');
container_output="";
let params = {
Cmd: ['sh','-c','ls -a $URL'],
Env: ['URL=/home'],
AttachStdout: true,
AttachStderr: true,
}
container.exec(params,(err, exec) => {
err && console.error(err);
exec.start({ hijack: true, stdin: false },
function(err, stream) {
stream.setEncoding('utf8');
container_output=(stream.pipe(process.stdout));
console.log("Directory in container is" ,container_output)
});
},
);

关于javascript - 如何使用 NodeJS dokerode 库获取进程的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57223195/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com