pub struct CreateCommand {
pub executor: CommandExecutor,
/* private fields */
}
Expand description
Docker create command builder
Create a new container without starting it. This is useful for preparing containers that will be started later.
§Example
use docker_wrapper::CreateCommand;
// Create a simple container
let result = CreateCommand::new("alpine:latest")
.name("my-container")
.run()
.await?;
println!("Created container: {}", result.container_id());
Fields§
§executor: CommandExecutor
Command executor
Implementations§
Source§impl CreateCommand
impl CreateCommand
Sourcepub fn new(image: impl Into<String>) -> Self
pub fn new(image: impl Into<String>) -> Self
Create a new create command
§Example
use docker_wrapper::CreateCommand;
let cmd = CreateCommand::new("nginx:latest");
Sourcepub fn name(self, name: impl Into<String>) -> Self
pub fn name(self, name: impl Into<String>) -> Self
Set the container name
§Example
use docker_wrapper::CreateCommand;
let cmd = CreateCommand::new("alpine:latest")
.name("my-container");
Sourcepub fn cmd(self, command: Vec<impl Into<String>>) -> Self
pub fn cmd(self, command: Vec<impl Into<String>>) -> Self
Set the command to run in the container
§Example
use docker_wrapper::CreateCommand;
let cmd = CreateCommand::new("alpine:latest")
.cmd(vec!["echo", "hello world"]);
Sourcepub fn env(self, key: impl Into<String>, value: impl Into<String>) -> Self
pub fn env(self, key: impl Into<String>, value: impl Into<String>) -> Self
Add an environment variable
§Example
use docker_wrapper::CreateCommand;
let cmd = CreateCommand::new("alpine:latest")
.env("KEY", "value")
.env("DEBUG", "true");
Sourcepub fn port(self, host_port: u16, container_port: u16) -> Self
pub fn port(self, host_port: u16, container_port: u16) -> Self
Add a port mapping
§Example
use docker_wrapper::CreateCommand;
let cmd = CreateCommand::new("nginx:latest")
.port(8080, 80);
Sourcepub fn attach_stdin(self) -> Self
pub fn attach_stdin(self) -> Self
Attach to STDIN
Sourcepub fn attach_stdout(self) -> Self
pub fn attach_stdout(self) -> Self
Attach to STDOUT
Sourcepub fn attach_stderr(self) -> Self
pub fn attach_stderr(self) -> Self
Attach to STDERR
Sourcepub fn interactive(self) -> Self
pub fn interactive(self) -> Self
Enable interactive mode
Sourcepub fn volume(self, volume: impl Into<String>) -> Self
pub fn volume(self, volume: impl Into<String>) -> Self
Add a volume mount
§Example
use docker_wrapper::CreateCommand;
let cmd = CreateCommand::new("alpine:latest")
.volume("/host/path:/container/path")
.volume("/host/data:/data:ro");
Sourcepub async fn run(&self) -> Result<CreateResult>
pub async fn run(&self) -> Result<CreateResult>
Execute the create command
§Errors
Returns an error if:
- The Docker daemon is not running
- The specified image doesn’t exist
- Invalid configuration options
§Example
use docker_wrapper::CreateCommand;
let result = CreateCommand::new("alpine:latest")
.name("test-container")
.cmd(vec!["echo", "hello"])
.run()
.await?;
if result.success() {
println!("Created container: {}", result.container_id());
}
Trait Implementations§
Source§impl Clone for CreateCommand
impl Clone for CreateCommand
Source§fn clone(&self) -> CreateCommand
fn clone(&self) -> CreateCommand
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl Debug for CreateCommand
impl Debug for CreateCommand
Source§impl DockerCommand for CreateCommand
impl DockerCommand for CreateCommand
Source§type Output = CommandOutput
type Output = CommandOutput
The output type this command produces
Source§fn get_executor(&self) -> &CommandExecutor
fn get_executor(&self) -> &CommandExecutor
Get the command executor for extensibility
Source§fn get_executor_mut(&mut self) -> &mut CommandExecutor
fn get_executor_mut(&mut self) -> &mut CommandExecutor
Get mutable command executor for extensibility
Source§fn build_command_args(&self) -> Vec<String>
fn build_command_args(&self) -> Vec<String>
Build the complete command arguments including subcommands
Source§fn execute<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Self::Output>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn execute<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Self::Output>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Execute the command and return the typed output
Source§fn execute_command<'life0, 'async_trait>(
&'life0 self,
command_args: Vec<String>,
) -> Pin<Box<dyn Future<Output = Result<CommandOutput>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
fn execute_command<'life0, 'async_trait>(
&'life0 self,
command_args: Vec<String>,
) -> Pin<Box<dyn Future<Output = Result<CommandOutput>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
Helper method to execute the command with proper error handling
Source§fn arg<S: AsRef<OsStr>>(&mut self, arg: S) -> &mut Self
fn arg<S: AsRef<OsStr>>(&mut self, arg: S) -> &mut Self
Add a raw argument to the command (escape hatch)
Auto Trait Implementations§
impl Freeze for CreateCommand
impl RefUnwindSafe for CreateCommand
impl Send for CreateCommand
impl Sync for CreateCommand
impl Unpin for CreateCommand
impl UnwindSafe for CreateCommand
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more