Docker exec example with output
sjmiller609 opened this issue · comments
Steven Miller commented
let config = CreateExecOptions {
cmd: Some(vec!["echo", "hello"]),
attach_stdout: Some(true),
..Default::default()
};
let exec = docker.create_exec(&container.id, config).await?;
let start_exec_options = Some(StartExecOptions {
detach: false,
..StartExecOptions::default()
});
let log_output = docker.start_exec(&exec.id, start_exec_options);
let mut start_exec_result = log_output.await?;
match start_exec_result {
StartExecResults::Attached { output, .. } => {
let mut output = output
.map(|result| {
match result {
Ok(log_output) => println!("{}", log_output.to_string()),
Err(error) => eprintln!("Error while reading log output: {}", error),
}
})
.fuse();
// Run the output stream to completion.
while output.next().await.is_some() {}
},
StartExecResults::Detached => {
println!("Exec started in detached mode");
}
}