Skip to content

Commit 5adaa60

Browse files
Prune images after container exits
1 parent a62050e commit 5adaa60

File tree

4 files changed

+18
-22
lines changed

4 files changed

+18
-22
lines changed

Cargo.lock

+2-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,5 +22,5 @@ regex = "1.4.3"
2222
lazy_static = "1.4.0"
2323
uuid = "0.8.2"
2424
rand = "0.8.2"
25-
dockurl = "0.1.4"
25+
dockurl = "0.1.5"
2626
#dockurl = { path = "../dockurl" }

src/benchmarker.rs

+3-16
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ use crate::io::{report_verifications, Logger};
2424
use crate::results::{BenchmarkData, Results};
2525
use colored::Colorize;
2626
use curl::easy::Easy2;
27-
use dockurl::container::{inspect_container, stop_container};
27+
use dockurl::container::inspect_container;
2828
use std::collections::HashMap;
2929
use std::sync::atomic::{AtomicBool, Ordering};
3030
use std::sync::{Arc, Mutex};
@@ -331,6 +331,7 @@ impl<'a> Benchmarker<'a> {
331331
}
332332

333333
self.trip();
334+
self.stop_containers();
334335
report_verifications(verifications, logger)?;
335336

336337
if succeeded {
@@ -803,21 +804,7 @@ impl<'a> Benchmarker<'a> {
803804
self.trip();
804805
if slept_for > 60 {
805806
self.trip();
806-
stop_container(
807-
&container_ids.0,
808-
&self.docker_config.server_docker_host,
809-
self.docker_config.use_unix_socket,
810-
Simple::new(),
811-
)?;
812-
if let Some(database_container_id) = &container_ids.1 {
813-
self.trip();
814-
stop_container(
815-
database_container_id,
816-
&self.docker_config.database_docker_host,
817-
self.docker_config.use_unix_socket,
818-
Simple::new(),
819-
)?;
820-
}
807+
self.stop_containers();
821808

822809
return Err(NoResponseFromDockerContainerError);
823810
}

src/docker/container.rs

+12-3
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ use dockurl::container::{
2424
attach_to_container, delete_container, get_container_logs, inspect_container, kill_container,
2525
wait_for_container_to_exit,
2626
};
27-
use dockurl::image::delete_image;
27+
use dockurl::image::{delete_image, delete_unused_images};
2828
use dockurl::network::NetworkMode;
2929
use std::collections::HashMap;
3030
use std::sync::{Arc, Mutex};
@@ -542,7 +542,7 @@ pub fn stop_docker_container_future(
542542
use_unix_socket,
543543
Simple::new(),
544544
)
545-
.unwrap_or(());
545+
.unwrap();
546546

547547
if docker_clean_up {
548548
delete_container(
@@ -554,7 +554,7 @@ pub fn stop_docker_container_future(
554554
true,
555555
false,
556556
)
557-
.unwrap_or(());
557+
.unwrap();
558558
}
559559

560560
container.unregister();
@@ -570,6 +570,15 @@ pub fn stop_docker_container_future(
570570
Simple::new(),
571571
)
572572
.unwrap();
573+
574+
// Todo - this is jank... do this better.
575+
delete_unused_images(
576+
"{\"dangling\":[\"true\"]}",
577+
&container.docker_host,
578+
use_unix_socket,
579+
Simple::new(),
580+
)
581+
.unwrap();
573582
}
574583
}
575584
container.image_id = None;

0 commit comments

Comments
 (0)