Skip to content

Commit 335e1ac

Browse files
committed
Covert docker commands parameters to a Command extension.
1 parent 8c43d28 commit 335e1ac

File tree

6 files changed

+293
-262
lines changed

6 files changed

+293
-262
lines changed

src/docker/local.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -34,16 +34,15 @@ pub(crate) fn run(
3434
cmd.args(args);
3535

3636
let mut docker = engine.subcommand("run");
37-
docker_userns(&mut docker);
37+
docker.add_userns();
3838

3939
options
4040
.image
4141
.platform
4242
.specify_platform(&options.engine, &mut docker);
43-
docker_envvars(&mut docker, &options, toolchain_dirs, msg_info)?;
43+
docker.add_envvars(&options, toolchain_dirs, msg_info)?;
4444

45-
docker_mount(
46-
&mut docker,
45+
docker.add_mounts(
4746
&options,
4847
&paths,
4948
|docker, host, absolute| mount(docker, host, absolute, ""),
@@ -55,9 +54,10 @@ pub(crate) fn run(
5554
docker.args(["--name", &container_id]);
5655
docker.arg("--rm");
5756

58-
docker_seccomp(&mut docker, engine.kind, &options.target, &paths.metadata)
57+
docker
58+
.add_seccomp(engine.kind, &options.target, &paths.metadata)
5959
.wrap_err("when copying seccomp profile")?;
60-
docker_user_id(&mut docker, engine.kind);
60+
docker.add_user_id(engine.kind);
6161

6262
docker
6363
.args([
@@ -99,7 +99,7 @@ pub(crate) fn run(
9999
"-v",
100100
&format!("{}:/target:z", package_dirs.target().to_utf8()?),
101101
]);
102-
docker_cwd(&mut docker, &paths)?;
102+
docker.add_cwd(&paths)?;
103103

104104
// When running inside NixOS or using Nix packaging we need to add the Nix
105105
// Store to the running container so it can load the needed binaries.
@@ -127,7 +127,7 @@ pub(crate) fn run(
127127
ChildContainer::create(engine.clone(), container_id)?;
128128
let status = docker
129129
.arg(&image_name)
130-
.args(["sh", "-c", &build_command(toolchain_dirs, &cmd)])
130+
.add_build_command(toolchain_dirs, &cmd)
131131
.run_and_get_status(msg_info, false)
132132
.map_err(Into::into);
133133

src/docker/remote.rs

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -664,27 +664,28 @@ pub(crate) fn run(
664664

665665
// 3. create our start container command here
666666
let mut docker = engine.subcommand("run");
667-
docker_userns(&mut docker);
667+
docker.add_userns();
668668
options
669669
.image
670670
.platform
671671
.specify_platform(&options.engine, &mut docker);
672672
docker.args(["--name", &container_id]);
673673
docker.arg("--rm");
674-
docker.args(["-v", &volume.bind_mount(mount_prefix)]);
674+
docker.args(["-v", &volume.mount(mount_prefix)]);
675675

676676
let mut volumes = vec![];
677-
docker_mount(
678-
&mut docker,
679-
&options,
680-
&paths,
681-
|_, _, _| Ok(()),
682-
|(src, dst)| volumes.push((src, dst)),
683-
msg_info,
684-
)
685-
.wrap_err("could not determine mount points")?;
686-
687-
docker_seccomp(&mut docker, engine.kind, target, &paths.metadata)
677+
docker
678+
.add_mounts(
679+
&options,
680+
&paths,
681+
|_, _, _| Ok(()),
682+
|(src, dst)| volumes.push((src, dst)),
683+
msg_info,
684+
)
685+
.wrap_err("could not determine mount points")?;
686+
687+
docker
688+
.add_seccomp(engine.kind, target, &paths.metadata)
688689
.wrap_err("when copying seccomp profile")?;
689690

690691
// Prevent `bin` from being mounted inside the Docker container.
@@ -902,11 +903,11 @@ symlink_recurse \"${{prefix}}\"
902903

903904
// 6. execute our cargo command inside the container
904905
let mut docker = engine.subcommand("exec");
905-
docker_user_id(&mut docker, engine.kind);
906-
docker_envvars(&mut docker, &options, toolchain_dirs, msg_info)?;
907-
docker_cwd(&mut docker, &paths)?;
906+
docker.add_user_id(engine.kind);
907+
docker.add_envvars(&options, toolchain_dirs, msg_info)?;
908+
docker.add_cwd(&paths)?;
908909
docker.arg(&container_id);
909-
docker.args(["sh", "-c", &build_command(toolchain_dirs, &cmd)]);
910+
docker.add_build_command(toolchain_dirs, &cmd);
910911
bail_container_exited!();
911912
let status = docker
912913
.run_and_get_status(msg_info, false)

0 commit comments

Comments
 (0)