summaryrefslogtreecommitdiffstats
path: root/src/runner/runc/run.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/runner/runc/run.rs')
-rw-r--r--src/runner/runc/run.rs14
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(())
}