#43: Introduced new function perform-cleanup

This commit is contained in:
Tim Zöller 2020-12-16 09:56:09 +01:00
parent 57573b483e
commit b4abae5c33
2 changed files with 29 additions and 4 deletions

View file

@ -22,7 +22,8 @@
[mvxcvi/cljstyle "0.14.0" :exclusions [org.clojure/clojure]]
[org.clojure/test.check "1.1.0"]
[org.clojure/tools.namespace "1.0.0"]
[org.testcontainers/postgresql "1.15.1"]]
[org.testcontainers/postgresql "1.15.1"]
[com.fzakaria/slf4j-timbre "0.3.20"]]
:source-paths ["dev-src"]}}
:target-path "target/%s")

View file

@ -25,6 +25,9 @@
BindMode/READ_WRITE
BindMode/READ_ONLY)))
(defn- reaper-instance []
(org.testcontainers.utility.ResourceReaper/instance))
(defmulti wait
"Sets a wait strategy to the container. Supports :http, :health and :log as
strategies.
@ -274,9 +277,16 @@
[port]
[port (.getMappedPort container port)])
mapped-ports (into {} (map map-port) exposed-ports)
container-id (.getContainerId container)
image-name (.getDockerImageName container)
logger (log log-to container)]
(.registerContainerForCleanup (reaper-instance)
container-id
image-name)
(-> container-config
(merge {:id (.getContainerId container) :mapped-ports mapped-ports} logger)
(merge {:id container-id
:mapped-ports mapped-ports
:image-name image-name} logger)
(dissoc :log-to))))
(defn stop!
@ -304,10 +314,24 @@
(when driver
(.driver builder driver))
(let [network (.build builder)]
(let [network (.build builder)
network-name (.getName network)]
(.registerNetworkIdForCleanup (reaper-instance) network-name)
{:network network
:name (.getName network)
:name network-name
:ipv6 (.getEnableIpv6 network)
:driver (.getDriver network)}))))
(def ^:deprecated init-network create-network)
(defn perform-cleanup!
"Stops and removes all container instances which were created in the active JVM or REPL session"
[]
(.performCleanup (reaper-instance)))
;;; REPL Helpers
(comment
(start! (create {:image-name "postgres:12.1"}))
(perform-cleanup!))