diff options
Diffstat (limited to 'src/runner/runc/run.rs')
-rw-r--r-- | src/runner/runc/run.rs | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/runner/runc/run.rs b/src/runner/runc/run.rs index cb6e37d..7e9a41c 100644 --- a/src/runner/runc/run.rs +++ b/src/runner/runc/run.rs @@ -1,12 +1,13 @@ -use std::{io, process}; +use std::{fs::DirBuilder, io, process}; use nix::{ mount::{self, MsFlags}, sched::{self, CloneFlags}, + unistd, }; use serde::{Deserialize, Serialize}; -use crate::{types::*, util::ToIOResult}; +use crate::{types::*, unshare, util::ToIOResult}; use super::spec; @@ -46,6 +47,15 @@ fn init_task() -> Result<(), Error> { ) .to_io_result()?; + let workdir = "build/tmp/runc/workdir"; + DirBuilder::new().create(workdir)?; + unistd::chown( + workdir, + Some(unistd::Uid::from_raw(unshare::BUILD_UID)), + Some(unistd::Gid::from_raw(unshare::BUILD_GID)), + ) + .to_io_result()?; + Ok(()) } |