summaryrefslogtreecommitdiffstats
path: root/crates/runner/src/init.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/runner/src/init.rs')
-rw-r--r--crates/runner/src/init.rs68
1 files changed, 0 insertions, 68 deletions
diff --git a/crates/runner/src/init.rs b/crates/runner/src/init.rs
deleted file mode 100644
index ede8fd8..0000000
--- a/crates/runner/src/init.rs
+++ /dev/null
@@ -1,68 +0,0 @@
-use nix::mount::{self, MsFlags};
-
-use common::error::*;
-
-use crate::{paths, util::fs};
-
-fn prepare_dev(path: &str) -> Result<()> {
- fs::mkdir(path)?;
- mount::mount::<_, _, str, str>(Some(path), path, None, MsFlags::MS_BIND, None)
- .context("Failed to bind mount container /dev")?;
-
- for dir in ["pts", "shm"] {
- fs::mkdir(paths::join(&[path, dir]))?;
- }
-
- for (link, target) in [
- ("fd", "/proc/self/fd"),
- ("stdin", "/proc/self/fd/0"),
- ("stdout", "/proc/self/fd/1"),
- ("stderr", "/proc/self/fd/2"),
- ("ptmx", "pts/ptmx"),
- ] {
- let path = paths::join(&[path, link]);
- std::os::unix::fs::symlink(target, &path)
- .with_context(|| format!("Failed to create link {}", path))?;
- }
-
- for dev in ["null", "zero", "full", "random", "urandom", "tty"] {
- let source = paths::join(&["/dev", dev]);
- let target = paths::join(&[path, dev]);
- fs::create(&target)?;
- mount::mount::<str, str, str, str>(Some(&source), &target, None, MsFlags::MS_BIND, None)
- .with_context(|| format!("Failed to bind mount {}", source))?;
- }
-
- mount::mount::<str, _, str, str>(
- None,
- path,
- None,
- MsFlags::MS_REMOUNT | MsFlags::MS_BIND | MsFlags::MS_RDONLY,
- None,
- )
- .context("Failed to mount container /dev read-only")?;
-
- Ok(())
-}
-
-pub fn init_runner() -> Result<()> {
- fs::mkdir(paths::LAYER_STATE_DIR)?;
- fs::mkdir(paths::OUTPUT_STATE_DIR)?;
-
- fs::ensure_removed(paths::TMP_DIR)?;
- fs::mkdir(paths::TMP_DIR)?;
- mount::mount::<_, _, str, str>(
- Some(paths::TMP_DIR),
- paths::TMP_DIR,
- None,
- MsFlags::MS_BIND,
- None,
- )
- .context("Failed to bind mount build tmpdir")?;
- mount::mount::<str, _, str, str>(None, paths::TMP_DIR, None, MsFlags::MS_PRIVATE, None)
- .context("Failed to set MS_PRIVATE for build tmpdir")?;
-
- prepare_dev(paths::DEV_DIR)?;
-
- Ok(())
-}