Событие завершения потока dockerode не выполняется после завершения exec - PullRequest
0 голосов
/ 04 июня 2019

пытается запустить некоторый код Python, используя образ докера Python через сервер узлов, с помощью dockerode

iv создал контейнер из образа и выполнил команду, но их событие выхода после запуска не выполнялосьэто закончено, что мне нужно, чтобы получить весь вывод.


    const docker = new Docker();

    console.log("creating container");

    let container = await docker.createContainer({
      Image: 'ubuntu',
      Tty: true,
      Cmd: ['/bin/bash'],
      StdinOnce: true
    });

    await container.start();

    var options = {
      Cmd: ['bash', '-c', 'echo test $VAR'],
      Env: ['VAR=ttslkfjsdalkfj'],
      AttachStdout: true,
      AttachStderr: true,
    };

    let exec = await container.exec(options);

    exec.start(function (err: Error, stream: Stream) {
      if (err) return;
      stream.on('end', (e) => {
        console.log('on end', e)
      })
      stream.on('data', (d) => {
        console.log('on data', d.toString('utf8'));
      });

      // container.modem.demuxStream(stream, process.stdout, process.stderr);
    });
  };
...