Packages
testcontainers
2.1.0-rc1
2.3.1
2.3.0
2.2.0
2.1.0
2.1.0-rc1
2.0.0
2.0.0-rc3
2.0.0-rc2
2.0.0-rc
1.14.1
1.14.0
1.13.5
1.13.4
1.13.3
1.13.2
1.13.1
1.13.0
1.12.0
1.11.8
1.11.7
1.11.6
1.11.5
1.11.4
1.11.3
1.11.2
1.11.1
1.11.0
1.10.5
1.10.4
1.10.3
1.10.2
1.10.1
1.10.0
1.9.0
1.8.4
1.8.3
1.8.2
1.8.1
1.8.0
1.7.0
1.6.0
1.5.1
1.5.0
1.4.2
1.4.1
1.4.0
1.3.1
1.3.0
1.2.11
1.2.10
1.2.9
1.2.8
1.2.7
1.2.6
1.2.5
1.2.4
1.2.3
1.2.2
1.2.1
1.2.0
1.1.3
1.1.2
1.1.1
1.1.0
1.0.1
1.0.0
1.0.0-beta.1
1.0.0-beta
0.9.3
0.9.2
0.9.1
0.9.0
Testcontainers is an Elixir library that supports ExUnit tests, providing lightweight, throwaway instances of common databases, Selenium web browsers, or anything else that can run in a Docker container.
Current section
Files
Jump to
Current section
Files
lib/compose/compose_environment.ex
defmodule Testcontainers.Compose.ComposeEnvironment do
@moduledoc """
Represents the started state of a Docker Compose environment.
"""
alias Testcontainers.Compose.ComposeService
defstruct [:compose, :project_name, :docker_host, services: %{}]
@doc """
Returns the service struct for the given service name.
"""
def get_service(%__MODULE__{} = env, service_name) when is_binary(service_name) do
Map.get(env.services, service_name)
end
@doc """
Returns the docker host for a service.
"""
def get_service_host(%__MODULE__{} = env, _service_name) do
env.docker_host
end
@doc """
Returns the mapped host port for a service and container port.
"""
def get_service_port(%__MODULE__{} = env, service_name, port)
when is_binary(service_name) and is_integer(port) do
case get_service(env, service_name) do
nil -> nil
service -> ComposeService.mapped_port(service, port)
end
end
end