提交 e3d89b19 authored 作者: Serhij S's avatar Serhij S

ROBOPLC_DOCKER_OPTS var

上级 7fb69319
...@@ -1071,7 +1071,7 @@ dependencies = [ ...@@ -1071,7 +1071,7 @@ dependencies = [
[[package]] [[package]]
name = "roboplc-cli" name = "roboplc-cli"
version = "0.6.1" version = "0.6.2"
dependencies = [ dependencies = [
"ansi_term", "ansi_term",
"bma-ts", "bma-ts",
......
[package] [package]
name = "roboplc-cli" name = "roboplc-cli"
version = "0.6.1" version = "0.6.2"
edition = "2021" edition = "2021"
authors = ["Serhij S. <div@altertech.com>"] authors = ["Serhij S. <div@altertech.com>"]
license = "Apache-2.0" license = "Apache-2.0"
......
...@@ -57,7 +57,7 @@ fn flash_file( ...@@ -57,7 +57,7 @@ fn flash_file(
println!("Docker image ready: {}", img_name.green()); println!("Docker image ready: {}", img_name.green());
if run { if run {
println!("Running docker image..."); println!("Running docker image...");
let mut args = vec!["run", "--rm", "-it"]; let mut args: Vec<String> = vec!["run".into(), "--rm".into(), "-it".into()];
let port = std::env::var("ROBOPLC_DOCKER_PORT") let port = std::env::var("ROBOPLC_DOCKER_PORT")
.unwrap_or_else(|_| "127.0.0.1:7700".to_owned()); .unwrap_or_else(|_| "127.0.0.1:7700".to_owned());
let port_mapping = if port.is_empty() { let port_mapping = if port.is_empty() {
...@@ -66,17 +66,23 @@ fn flash_file( ...@@ -66,17 +66,23 @@ fn flash_file(
Some(format!("{}:7700", port)) Some(format!("{}:7700", port))
}; };
if let Some(ref port_mapping) = port_mapping { if let Some(ref port_mapping) = port_mapping {
args.push("-p"); args.push("-p".into());
args.push(port_mapping); args.push(port_mapping.into());
println!( println!(
"RoboPLC manager is available at {}", "RoboPLC manager is available at {}",
format!("http://{}", port).yellow() format!("http://{}", port).yellow()
); );
} }
if let Ok(opts) = std::env::var("ROBOPLC_DOCKER_OPTS") {
let lexer = shlex::Shlex::new(&opts);
for arg in lexer {
args.push(arg);
}
}
if force { if force {
args.push("--privileged"); args.push("--privileged".into());
} }
args.push(&img_name); args.push(img_name);
let result = std::process::Command::new("docker").args(args).status()?; let result = std::process::Command::new("docker").args(args).status()?;
if !result.success() { if !result.success() {
return Err("Execution failed".into()); return Err("Execution failed".into());
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论