diff --git a/src/main.rs b/src/main.rs index bce5e19..1fd9270 100644 --- a/src/main.rs +++ b/src/main.rs @@ -234,7 +234,7 @@ fn get_env_vec(env: &String) -> Result> { Ok(env_vec) } -fn init_container_env(env_vec: Vec) -> Result<()>{ +fn init_container_env(env_vec: &Vec) -> Result<()>{ for item_env in env_vec.iter() { let item_env_v = item_env.split("=").collect::>(); if item_env_v.len() == 2 { @@ -432,6 +432,9 @@ fn run_container(container_info: &ContainerInfo, is_exec_cmd: Option<&String>) - let rocker_uid = rocker_user_info.uid; let rocker_gid = rocker_user_info.gid; + let env_vec = get_env_vec(&container_info.env)?; + let volume_path = extend_image(&container_info.image)?; + let _cb = if let Some(exec_cmd) = is_exec_cmd { let _cb = || { init_exec_ns(container_info.procs[0]).unwrap(); @@ -441,7 +444,7 @@ fn run_container(container_info: &ContainerInfo, is_exec_cmd: Option<&String>) - init_container_user(rocker_uid, rocker_gid).unwrap(); } - init_container_env(env_vec).unwrap(); + init_container_env(&env_vec).unwrap(); create_pause(container_root_pause_path).unwrap(); while container_merged_pause_path.exists() { std::thread::sleep(std::time::Duration::from_millis(10)); @@ -460,9 +463,6 @@ fn run_container(container_info: &ContainerInfo, is_exec_cmd: Option<&String>) - let _cb = || { sethostname(USER_NAME).unwrap(); clear_env(); - let env_vec = get_env_vec(&container_info.env).unwrap(); - - let volume_path = extend_image(&container_info.image).unwrap(); init_container_overlay(&volume_path, &container_upper_path, &container_merged_path).unwrap(); // 用户自定义的文件映射 @@ -482,7 +482,7 @@ fn run_container(container_info: &ContainerInfo, is_exec_cmd: Option<&String>) - init_container_proc().unwrap(); // 设置自定义env - init_container_env(env_vec).unwrap(); + init_container_env(&env_vec).unwrap(); // // init_container_pts().unwrap();