| CI | Release |
|---|---|
ZIO wrapper for Testcontainers.
"com.github.sideeffffect" %% "zio-testcontainers" % "<version>" % TestThis library comes with toLayer extension method (behind zio.testcontainers._ import) that will turn any TestContainer into a layer that you can use in your tests.
import zio.testcontainers._
lazy val dockerCompose: ULayer[DockerComposeContainer] = ZLayer.fromTestContainer {
new DockerComposeContainer(
new File("docker-compose.yml"),
List(
ExposedService("mariadb", 3306),
ExposedService("mailhog", 1025),
ExposedService("mailhog", 8025),
),
localCompose = false,
)
}
...
lazy val layer = ZLayer.fromZIO {
for {
docker <- ZIO.service[DockerComposeContainer]
(host, port) <- docker.getHostAndPort("mariadb")(3306)
config = ...
} yield config
}