h$&$      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefgNone #%-2<>?testcontainers1The parsed JSON output of docker inspect command.testcontainersHandle to a Docker container.testcontainersHandle to a Docker image.testcontainersA data type indicating which pipe to scan for a specific log line.testcontainersRefer to logs on STDOUT.testcontainersRefer to logs on STDERR. testcontainersThe exception thrown by A. testcontainers>The id of the underlying container that was not ready in time. testcontainersThe exception thrown by  waitForLine- in case the expected log line wasn't found.testcontainers#The id of the underlying container.testcontainers6A strategy that describes how to asses readiness of a 9. Allows Users to plug in their definition of readiness.testcontainers>Identifies a container within the Docker runtime. Assigned by  docker run.testcontainers!A description of how to build an .testcontainersA tag to a Docker image.testcontainers,Parameters for a running a Docker container.testcontainers8Docker related functionality is parameterized over this h.testcontainersFailing to interact with Docker results in this exception being thrown.testcontainers+Exit code of the underlying Docker process.testcontainers%Arguments that were passed to Docker.testcontainersDocker's STDERR output.testcontainers Id of the + that we tried to lookup the port mapping.testcontainersTextual representation of port mapping we were trying to look up. testcontainers&Configuration for defaulting behavior."testcontainersThe number of seconds to maximally wait for a container to become ready. Default is `Just 60`.Nothing  = waits indefinitely.#testcontainers/Traces execution inside testcontainers library.$testcontainers/Traces execution within testcontainers library.%testcontainersType representing various events during testcontainer execution.&testcontainersThe low-level invocation of docker command , TraceDockerInvocation args stdin exitcode 'testcontainers+Line written to STDOUT by a Docker process.(testcontainers+Line written to STDERR by a Docker process.)testcontainersWaiting for a container to become ready. Attached with the timeout to wait (in seconds).*testcontainersOpening socket+testcontainersConstruct a new $ from a tracing function.-testcontainersDefault configuration..testcontainersAutoselect the default configuration depending on wether you use Docker For Mac or not./testcontainersDefault *. Used as base for every Docker container.0testcontainersSet the name of a Docker container. This is equivalent to invoking  docker run with the --name parameter.1testcontainersThe command to execute inside the Docker container. This is the equivalent of passing the command on the  docker run invocation.2testcontainersThe volume mounts to link to Docker container. This is the equivalent of passing the command on the  docker run -v invocation.3testcontainersWether to remove the container once exited. This is equivalent to passing --rm to  docker run. (default is i).4testcontainersSet the environment for the container. This is equivalent to passing --env key=value to  docker run.5testcontainers9Set link on the container. This is equivalent to passing --link other_container to  docker run.6testcontainersSet exposed ports on the container. This is equivalent to setting --publish $PORT to  docker run. Docker assigns a random port for the host port. You will have to use J and K" to connect to the published port.  container <- 8 $ / redis & 6* [ 6379 ] let (redisHost, redisPort) = (J container, K0 container 6379) print (redisHost, redisPort) 7testcontainersSet the waiting strategy on the container. Depending on a Docker container it can take some time until the provided service is ready. You will want to use to 7. to block until the container is ready to use.8testcontainers Runs a Docker container from an  and . A finalizer is registered so that the container is aways stopped when it goes out of scope. This function is essentially  docker run.9testcontainersKills a Docker container. 9 is essentially  docker kill.:testcontainersStops a Docker container. : is essentially  docker stop.;testcontainersRemove a Docker container. ; is essentially  docker rm -f<testcontainersAccess STDOUT and STDERR of a running Docker container. This is essentially  docker logs under the hood.=testcontainers Build the  referred to by the argument. If the construction of the image is expensive (e.g. a call to ?9) we don't want to repeatedly build the image. Instead, = can be used to execute the underlying Docker build once and re-use the resulting .>testcontainersGet an  from a tag.?testcontainersBuild the image from a build path and an optional path to the Dockerfile (default is Dockerfile)@testcontainers;Build a contextless image only from a Dockerfile passed as j.Atestcontainers!waitUntilTimeout n waitUntilReady waits n seconds for the container to be ready. If the container is not ready by then a   will be thrown.BtestcontainersWaits until the port of a container is ready to accept connections. This combinator should always be used with A.CtestcontainersA low-level primitive that allows scanning the logs for specific log lines that indicate readiness of a container.The k,s passed to the function argument represent stdout and stderr of the container.Dtestcontainers9Waits for a specific line to occur in the logs. Throws a   exception in case the desired line can not be found on the logs.Say you want to find "Ready to accept connections" in the logs on Stdout try: 5waitForLogLine Stdout ("Ready to accept connections" l) Etestcontainers%Blocks until the container is ready. E/ might throw exceptions depending on the used  on the container.Ftestcontainers9The image tag assigned by Docker. Uniquely identifies an  within Docker.Gtestcontainers Returns the id of the container.Htestcontainers.Returns the underlying image of the container.ItestcontainersReturns the internal release key used for safely shutting down the container. Use this with care. This function is considered an internal detail.Jtestcontainers)Looks up the ip address of the container.Ktestcontainers%Looks up an exposed port on the host.Ltestcontainers7Runs the `docker inspect` command. Memoizes the result.  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMN !"#-.$%&'()*+,FGHJKI>?@=/012345678L:9;<E AC DMNBNone tatestcontainersImage for Redis database. redis = fromTag "redis:5.0" btestcontainersImage for Mongo database. mongo = Tag "mongo:4.0.17" =>?@abab=>?@None  !"#$%&'()*+-./0123456789:;<=>?ABCDFHIJKLMNabF>?=/01234567JKIH8L:9;<ACDB !"#-.$%&'()*+ MNabNone?"ctestcontainersAllow  to depend on Docker containers. Hspec takes care of initialization and de-initialization of the containers.  containers :: MonadDocker m => m Boolean containers = do _redis <- TestContainers.run $ TestContainers.containerRequest TestContainers.redis _kafka <- TestContainers.run $ TestContainers.containerRequest TestContainers.kafka pure True example :: Spec example = around (withContainers containers) $ describe "Example tests" it "first test" $ \isBoolean -> do isBoolean shouldBe True c allows you naturally scope the handling of containers for your tests.  !"#$%*)(&'+-./0123456789:;<=>?ABCDFHIJKLMNabccNone?$dtestcontainersTasty m that adds useful options to control defaults within the TetContainers library. main :: IO () main = n (d : o) tests   !"#$*)(&'+-./0123456789:;<=>?ABCDFHIJKLMNabdede  !"#$*)(&'+-./0123456789:;<=>?ABCDFHIJKLMNab   !"#$%&'()**+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmlnopqrstuvwxyuz{|}~||-testcontainers-0.3.1.0-Idh7PueKsHe7362AuvpbNWTestContainers.DockerTestContainers.ImageTestContainers.HspecTestContainers.TastyTestContainersHspecSpecbase Data.Function&(resourcet-1.2.4.3-E1RzQFMXtxGKsaeOjTDDx7Control.Monad.Trans.Resource runResourceT%Control.Monad.Trans.Resource.InternalResIO InspectOutput ContainerImagePipeStdoutStderrTimeoutException$sel:id:TimeoutExceptionUnexpectedEndOfPipe$sel:id:UnexpectedEndOfPipeWaitUntilReady ContainerIdToImageImageTagContainerRequest MonadDockerDockerExceptionInspectUnknownContainerIdInspectOutputInvalidJSONInspectOutputUnexpectedUnknownPortMapping$sel:exitCode:DockerException$sel:args:DockerException$sel:stderr:DockerException$sel:id:DockerException$sel:port:DockerExceptionConfig$$sel:configDefaultWaitTimeout:Config$sel:configTracer:ConfigTracerTraceTraceDockerInvocationTraceDockerStdoutTraceDockerStderrTraceWaitUntilReadyTraceOpenSocket newTracer withTracedefaultDockerConfigdetermineConfigcontainerRequestsetNamesetCmdsetVolumeMountssetRmsetEnvsetLink setExpose setWaitingForrunkillstoprmwithLogsbuildfromTagfromBuildContextfromDockerfilewaitUntilTimeoutwaitUntilMappedPortReachable waitWithLogswaitForLogLinewaitUntilReadyimageTag containerIdcontainerImagecontainerReleaseKey containerIp containerPortinspect dockerHostOsisDockerOnLinux$fExceptionDockerException$fExceptionUnexpectedEndOfPipe$fExceptionTimeoutException $fEqImage $fShowImage$fEqPipe $fOrdPipe $fShowPipe$fEqTimeoutException$fShowTimeoutException$fEqUnexpectedEndOfPipe$fShowUnexpectedEndOfPipe$fEqDockerException$fShowDockerException$fMonoidTracer$fSemigroupTracer $fShowTrace $fEqTraceredismongowithContainers ingredient$fIsOptionDefaultTimeout$fIsOptionTraceGHC.BaseMonadghc-prim GHC.TypesTrue text-1.2.3.2Data.Text.InternalTextGHC.IO.Handle.TypesHandleData.Text.Lazy isInfixOf$tasty-1.4.2.1-8ut6jsnFkes9BOtkuXTsQUTest.Tasty.Ingredients IngredientTest.Tasty.CmdLinedefaultMainWithIngredients Test.TastydefaultIngredients