我想将一些 java 代码作为字符串发送到 API,然后在 docker 容器中运行它并返回控制台输出,我已经设法用 Python 做到了,但由于 java 首先需要编译然后运行我不确定如何实现语言。
目前正在使用 python 图像,但我对 java 不太熟悉,我不确定如何处理它。
我的环境是使用 typescript 的节点,而我使用的是 dockerode 模块。
let container = await docker.createContainer({
Image: 'python',
Tty: true,
Cmd: ['/bin/bash'],
StdinOnce: true
});
我可以通过在运行 python 后将字符串添加到 Cmd 来将字符串直接传递给容器,但不确定如何将字符串传递到文件中然后编译并运行它。
var options = {
Cmd: ['python', '-c'],
AttachStdout: true,
AttachStderr: true,
};
options.Cmd.push(code);
let exec = await container.exec(options);
我只有一个监听器来捕获可用于以后的输出流
stdout.on('data', (chunk: any) => {
let data = chunk.toString('utf8').split(/\r?\n/).filter((str: string) => {return str.length});
output = data;
})
任何关于使用哪个图像以及如何传递代码以获取输出的建议将不胜感激。