diff --git a/src/api/image.rs b/src/api/image.rs index 0248698..dd34e9f 100644 --- a/src/api/image.rs +++ b/src/api/image.rs @@ -89,7 +89,7 @@ impl Image { let headers = opts .auth_header() .map(|auth| Headers::single(AUTH_HEADER, auth)) - .unwrap_or_else(Headers::default); + .unwrap_or_default(); self.docker .post_string(&ep, Payload::empty(), Some(headers)) diff --git a/src/opts/container.rs b/src/opts/container.rs index 0ef099c..7f03cba 100644 --- a/src/opts/container.rs +++ b/src/opts/container.rs @@ -601,6 +601,8 @@ impl ContainerCreateOptsBuilder { impl_map_field!(json log_driver_config => "HostConfig.LogConfig.Config"); + impl_vec_field!(binds => "HostConfig.Binds"); + pub fn restart_policy(mut self, name: &str, maximum_retry_count: u64) -> Self { self.params .insert("HostConfig.RestartPolicy.Name", json!(name)); @@ -914,6 +916,13 @@ mod tests { r#"{"HostConfig":{"LogConfig":{"Config":{"tag":"container-tag"}}},"Image":"test_image"}"# ); + test_case!( + ContainerCreateOptsBuilder::default() + .image("test_image") + .binds(vec![("/etc/hosts:/etc/hosts:ro")]), + r#"{"HostConfig":{"Binds":["/etc/hosts:/etc/hosts:ro"]},"Image":"test_image"}"# + ); + test_case!( ContainerCreateOptsBuilder::default() .image("test_image") diff --git a/tests/container_tests.rs b/tests/container_tests.rs index b8ee2ce..9c870a9 100644 --- a/tests/container_tests.rs +++ b/tests/container_tests.rs @@ -677,12 +677,11 @@ async fn container_attach() { let _ = container.start().await; let mut multiplexer = container.attach().await.unwrap(); - while let Some(chunk) = multiplexer.next().await { + if let Some(chunk) = multiplexer.next().await { match chunk { Ok(TtyChunk::StdOut(chunk)) => { let logs = String::from_utf8_lossy(&chunk); assert_eq!(logs, "123456\r\n"); - break; } chunk => { eprintln!("invalid chunk {chunk:?}"); @@ -713,12 +712,11 @@ async fn container_attach() { let _ = container.start().await; let mut multiplexer = container.attach().await.unwrap(); - while let Some(chunk) = multiplexer.next().await { + if let Some(chunk) = multiplexer.next().await { match chunk { Ok(TtyChunk::StdOut(chunk)) => { let logs = String::from_utf8_lossy(&chunk); assert_eq!(logs, "123456\n"); - break; } chunk => { eprintln!("invalid chunk {chunk:?}");