diff options
Diffstat (limited to 'examples/execinspect.rs')
-rw-r--r-- | examples/execinspect.rs | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/examples/execinspect.rs b/examples/execinspect.rs new file mode 100644 index 0000000..de92ec7 --- /dev/null +++ b/examples/execinspect.rs @@ -0,0 +1,32 @@ +use futures::StreamExt; +use shiplift::{Docker, Exec, ExecContainerOptions}; +use std::env; + +#[tokio::main] +async fn main() { + let docker = Docker::new(); + let mut args = env::args().skip(1); + + // First argument is container id + let id = args.next().expect("You need to specify a container id"); + // Rest is command to run in the container + let cmd = args.collect::<Vec<String>>(); + println!("{} {:?}", id, cmd); + + // Create options with specified command + let opts = ExecContainerOptions::builder() + .cmd(cmd.iter().map(String::as_str).collect()) + .attach_stdout(true) + .attach_stderr(true) + .build(); + + let exec = Exec::create(&docker, &id, &opts).await.unwrap(); + + println!("{:#?}", exec.inspect().await.unwrap()); + + let mut stream = exec.start(); + + stream.next().await; + + println!("{:#?}", exec.inspect().await.unwrap()); +} |