diff options
author | Matthias Schiffer <mschiffer@universe-factory.net> | 2021-09-26 10:29:33 +0200 |
---|---|---|
committer | Matthias Schiffer <mschiffer@universe-factory.net> | 2021-09-26 14:18:06 +0200 |
commit | eb052bdbaff92147e8012985f5d6fe0d78390f3c (patch) | |
tree | c333ab8fc17d5d1711779ec735fdd0f3282af6bf | |
parent | 25f64d378345405b0d915a3b549960fbcd0fe341 (diff) | |
download | rebel-eb052bdbaff92147e8012985f5d6fe0d78390f3c.tar rebel-eb052bdbaff92147e8012985f5d6fe0d78390f3c.zip |
runc: do not create a separate mount for the sysroot
-rw-r--r-- | src/paths.rs | 6 | ||||
-rw-r--r-- | src/runner/runc/run.rs | 23 | ||||
-rw-r--r-- | src/runner/runc/spec.rs | 9 |
3 files changed, 11 insertions, 27 deletions
diff --git a/src/paths.rs b/src/paths.rs index 193bdea..29cbcbd 100644 --- a/src/paths.rs +++ b/src/paths.rs @@ -30,8 +30,7 @@ //! │ │ ├── sysroot/ # sysroot mountpoint //! │ │ └── work/ # build overlay mountpoint //! │ ├── rootfs/ # rootfs overlay mountpoint -//! │ ├── build_depends/ # overlayed on rootfs in container -//! │ └── host_depends/ # bound to /build/sysroot in container +//! │ └── depends/ # overlayed on rootfs in container //! └── runc/ # runc container state //! ``` @@ -51,8 +50,7 @@ pub const TASK_TMP_DOWNLOADS_SUBDIR: &str = "build/downloads"; pub const TASK_TMP_WORK_SUBDIR: &str = "build/work"; pub const TASK_TMP_ROOTFS_SUBDIR: &str = "rootfs"; -pub const TASK_TMP_BUILD_DEPENDS_SUBDIR: &str = "build_depends"; -pub const TASK_TMP_HOST_DEPENDS_SUBDIR: &str = "host_depends"; +pub const TASK_TMP_DEPENDS_SUBDIR: &str = "depends"; pub const TASK_TMP_RUNC_ROOT_SUBDIR: &str = "../../runc"; diff --git a/src/runner/runc/run.rs b/src/runner/runc/run.rs index eed3ce2..f93070b 100644 --- a/src/runner/runc/run.rs +++ b/src/runner/runc/run.rs @@ -30,11 +30,7 @@ fn init_task(task: &runner::Task) -> Result<()> { fs::mkdir(&mount_target)?; fs::mkdir(paths::join(&[ &task_tmp_dir, - paths::TASK_TMP_BUILD_DEPENDS_SUBDIR, - ]))?; - fs::mkdir(paths::join(&[ - &task_tmp_dir, - paths::TASK_TMP_HOST_DEPENDS_SUBDIR, + paths::TASK_TMP_DEPENDS_SUBDIR, ]))?; fs::mkdir(paths::join(&[&task_tmp_dir, paths::TASK_TMP_ROOTFS_SUBDIR]))?; @@ -82,10 +78,10 @@ fn init_task(task: &runner::Task) -> Result<()> { fn init_task_rootfs(task: &runner::Task) -> Result<()> { let task_tmp_dir = paths::task_tmp_dir(&task.input_hash); - let build_depends_dir = paths::join(&[&task_tmp_dir, paths::TASK_TMP_BUILD_DEPENDS_SUBDIR]); + let depends_dir = paths::join(&[&task_tmp_dir, paths::TASK_TMP_DEPENDS_SUBDIR]); let mount_target = paths::join(&[&task_tmp_dir, paths::TASK_TMP_ROOTFS_SUBDIR]); - let lower = [&build_depends_dir, paths::ROOTFS_DIR].join(":"); + let lower = [&depends_dir, paths::ROOTFS_DIR].join(":"); let options = format!( "xino=off,index=off,metacopy=off,lowerdir={lower}", lower = lower, @@ -138,11 +134,6 @@ fn unpack_dependencies(task: &runner::Task) -> Result<()> { let downloads_dir = paths::join(&[&task_tmp_dir, paths::TASK_TMP_DOWNLOADS_SUBDIR]); fs::mkdir(&downloads_dir)?; - fs::mkdir(paths::join(&[ - &task_tmp_dir, - paths::TASK_TMP_BUILD_DEPENDS_SUBDIR, - paths::SYSROOT_PREFIX, - ]))?; for dep in task.input.depends.values() { match dep { @@ -155,13 +146,17 @@ fn unpack_dependencies(task: &runner::Task) -> Result<()> { Dependency::BuildTask { output } => { unpack_dependency( paths::archive_filename(output), - paths::join(&[&task_tmp_dir, paths::TASK_TMP_BUILD_DEPENDS_SUBDIR]), + paths::join(&[&task_tmp_dir, paths::TASK_TMP_DEPENDS_SUBDIR]), )?; } Dependency::HostTask { output } => { unpack_dependency( paths::archive_filename(output), - paths::join(&[&task_tmp_dir, paths::TASK_TMP_HOST_DEPENDS_SUBDIR]), + paths::join(&[ + &task_tmp_dir, + paths::TASK_TMP_DEPENDS_SUBDIR, + paths::SYSROOT_PREFIX, + ]), )?; } } diff --git a/src/runner/runc/spec.rs b/src/runner/runc/spec.rs index 8afeaeb..886799e 100644 --- a/src/runner/runc/spec.rs +++ b/src/runner/runc/spec.rs @@ -39,15 +39,6 @@ pub fn generate_spec(command: &str) -> runtime::Spec { ] }, { - "destination": paths::abs(paths::SYSROOT_PREFIX), - "type": "none", - "source": paths::TASK_TMP_HOST_DEPENDS_SUBDIR, - "options": [ - "bind", - "ro" - ] - }, - { "destination": "/tmp", "type": "tmpfs", "source": "tmp", |