summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Schiffer <mschiffer@universe-factory.net>2021-09-26 10:29:33 +0200
committerMatthias Schiffer <mschiffer@universe-factory.net>2021-09-26 14:18:06 +0200
commiteb052bdbaff92147e8012985f5d6fe0d78390f3c (patch)
treec333ab8fc17d5d1711779ec735fdd0f3282af6bf
parent25f64d378345405b0d915a3b549960fbcd0fe341 (diff)
downloadrebel-eb052bdbaff92147e8012985f5d6fe0d78390f3c.tar
rebel-eb052bdbaff92147e8012985f5d6fe0d78390f3c.zip
runc: do not create a separate mount for the sysroot
-rw-r--r--src/paths.rs6
-rw-r--r--src/runner/runc/run.rs23
-rw-r--r--src/runner/runc/spec.rs9
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",