#43: Introduced new function perform-cleanup
This commit is contained in:
parent
57573b483e
commit
b4abae5c33
2 changed files with 29 additions and 4 deletions
|
|
@ -22,7 +22,8 @@
|
||||||
[mvxcvi/cljstyle "0.14.0" :exclusions [org.clojure/clojure]]
|
[mvxcvi/cljstyle "0.14.0" :exclusions [org.clojure/clojure]]
|
||||||
[org.clojure/test.check "1.1.0"]
|
[org.clojure/test.check "1.1.0"]
|
||||||
[org.clojure/tools.namespace "1.0.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"]}}
|
:source-paths ["dev-src"]}}
|
||||||
|
|
||||||
:target-path "target/%s")
|
:target-path "target/%s")
|
||||||
|
|
|
||||||
|
|
@ -25,6 +25,9 @@
|
||||||
BindMode/READ_WRITE
|
BindMode/READ_WRITE
|
||||||
BindMode/READ_ONLY)))
|
BindMode/READ_ONLY)))
|
||||||
|
|
||||||
|
(defn- reaper-instance []
|
||||||
|
(org.testcontainers.utility.ResourceReaper/instance))
|
||||||
|
|
||||||
(defmulti wait
|
(defmulti wait
|
||||||
"Sets a wait strategy to the container. Supports :http, :health and :log as
|
"Sets a wait strategy to the container. Supports :http, :health and :log as
|
||||||
strategies.
|
strategies.
|
||||||
|
|
@ -274,9 +277,16 @@
|
||||||
[port]
|
[port]
|
||||||
[port (.getMappedPort container port)])
|
[port (.getMappedPort container port)])
|
||||||
mapped-ports (into {} (map map-port) exposed-ports)
|
mapped-ports (into {} (map map-port) exposed-ports)
|
||||||
|
container-id (.getContainerId container)
|
||||||
|
image-name (.getDockerImageName container)
|
||||||
logger (log log-to container)]
|
logger (log log-to container)]
|
||||||
|
(.registerContainerForCleanup (reaper-instance)
|
||||||
|
container-id
|
||||||
|
image-name)
|
||||||
(-> container-config
|
(-> 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))))
|
(dissoc :log-to))))
|
||||||
|
|
||||||
(defn stop!
|
(defn stop!
|
||||||
|
|
@ -304,10 +314,24 @@
|
||||||
(when driver
|
(when driver
|
||||||
(.driver builder driver))
|
(.driver builder driver))
|
||||||
|
|
||||||
(let [network (.build builder)]
|
(let [network (.build builder)
|
||||||
|
network-name (.getName network)]
|
||||||
|
(.registerNetworkIdForCleanup (reaper-instance) network-name)
|
||||||
{:network network
|
{:network network
|
||||||
:name (.getName network)
|
:name network-name
|
||||||
:ipv6 (.getEnableIpv6 network)
|
:ipv6 (.getEnableIpv6 network)
|
||||||
:driver (.getDriver network)}))))
|
:driver (.getDriver network)}))))
|
||||||
|
|
||||||
(def ^:deprecated init-network create-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!))
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue