Skip to content

Commit 6179e6c

Browse files
committed
feat(cli): cache build-deps in docker image
1 parent 8e18b43 commit 6179e6c

File tree

1 file changed

+17
-1
lines changed

1 file changed

+17
-1
lines changed

packages/debmagic/src/build/driver_docker.rs

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ RUN groupadd --gid $USER_GID $USERNAME \
3030
&& useradd --uid $USER_UID --gid $USER_GID -m $USERNAME \
3131
&& echo $USERNAME ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/$USERNAME \
3232
&& chmod 0440 /etc/sudoers.d/$USERNAME
33+
RUN mkdir -p /build/package/debian
34+
RUN --mount=type=bind,source=debian/control,target=/build/package/debian/control apt-get -y build-dep /build/package
3335
RUN mkdir -p {build_dir}
3436
RUN chown $USERNAME:$USERNAME {build_dir}
3537
USER $USERNAME
@@ -60,11 +62,25 @@ impl DriverDocker {
6062
let formatted_dockerfile = DOCKERFILE_TEMPLATE
6163
.replace("{base_image}", &base_image)
6264
.replace("{docker_user}", DOCKER_USER)
63-
.replace("{build_dir}", BUILD_DIR_IN_CONTAINER);
65+
.replace("{build_dir}", BUILD_DIR_IN_CONTAINER)
66+
.replace(
67+
"{debian_control_file}",
68+
&config
69+
.build_source_dir()
70+
.join("debian")
71+
.join("control")
72+
.to_string_lossy(),
73+
);
6474

6575
let dockerfile_path = config.build_temp_dir().join("Dockerfile");
6676
fs::write(&dockerfile_path, formatted_dockerfile).expect("Failed to write Dockerfile");
6777

78+
fs::create_dir_all(config.build_temp_dir().join("debian"))?;
79+
fs::copy(
80+
config.build_source_dir().join("debian").join("control"),
81+
config.build_temp_dir().join("debian").join("control"),
82+
)?;
83+
6884
let docker_image_name = format!("debmagic-{}", config.build_identifier());
6985
let mut build_args = Vec::new();
7086

0 commit comments

Comments
 (0)