напишите в контейнер stdin на execstart в docker-php api - PullRequest
0 голосов
/ 12 сентября 2018

У меня есть Docker-контейнер, в который я хочу записать свой стандарт после запуска execstart. я запускаю приложение php, которое требует ввода. В документации по Docker объяснил, что это можно сделать с помощью WebSocket, как показано ниже, но он объясняет только stdout и stderr:

$docker = Docker::create();
$containerConfig = new ContainersCreatePostBody();
$containerConfig->setImage('py:test1');
// You need to attach stream of the container to docker
$containerConfig->setAttachStdin(true);
$containerConfig->setAttachStdout(true);
$containerConfig->setAttachStderr(true);
$containerConfig->setOpenStdin(true);
$containerConfig->setTty(true);
$ss= $docker->containerCreate($containerConfig);
$webSocketStream = $docker->containerAttachWebsocket($ss->getId(), [
    'stream' => true,
    'stdout' => true,
    'stderr' => true,
    'stdin'  => true,
]);
$docker->containerStart($ss->getId());
$line = $webSocketStream->read(10);

запустите этот код, и я получаю сообщение об ошибке: вызов функции write () для null

...