From 3196a8667f5d8b0d1222b65109fee20dcd6cb7da Mon Sep 17 00:00:00 2001 From: Primoz Erjavec Date: Thu, 1 Feb 2024 13:57:43 +0100 Subject: [PATCH 1/2] Add Binds to HostConfig --- src/opts/container.rs | 9 +++++++++ 1 file changed, 9 insertions(+) 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") From c6a869737c56e2c3998ccbafe2476347152fbe58 Mon Sep 17 00:00:00 2001 From: Primoz Erjavec Date: Thu, 1 Feb 2024 15:01:52 +0100 Subject: [PATCH 2/2] Fix clippy warnings --- src/api/image.rs | 2 +- tests/container_tests.rs | 6 ++---- 2 files changed, 3 insertions(+), 5 deletions(-) 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/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:?}");