diff options
Diffstat (limited to 'src/builder.rs')
-rw-r--r-- | src/builder.rs | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/src/builder.rs b/src/builder.rs index c14cbb7..eba3536 100644 --- a/src/builder.rs +++ b/src/builder.rs @@ -854,10 +854,13 @@ impl ContainerOptionsBuilder { self } - pub fn env( + pub fn env<E, S>( &mut self, - envs: Vec<&str>, - ) -> &mut Self { + envs: E, + ) -> &mut Self + where S: AsRef<str> + Serialize, + E: AsRef<[S]> + Serialize + { self.params.insert("Env", json!(envs)); self } @@ -1698,6 +1701,23 @@ mod tests { } #[test] + fn container_options_env_dynamic() { + let env: Vec<String> = ["foo", "bar", "baz"] + .iter() + .map(|s| String::from(*s)) + .collect(); + + let options = ContainerOptionsBuilder::new("test_image") + .env(&env) + .build(); + + assert_eq!( + r#"{"Env":["foo","bar","baz"],"HostConfig":{},"Image":"test_image"}"#, + options.serialize().unwrap() + ); + } + + #[test] fn container_options_user() { let options = ContainerOptionsBuilder::new("test_image") .user("alice") |