Packages
testcontainers
1.6.0
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/connection/connection.ex
# SPDX-License-Identifier: MIT
defmodule Testcontainers.Connection do
@moduledoc false
alias Testcontainers.DockerUrl
alias Testcontainers.Logger
alias Testcontainers.DockerHostStrategyEvaluator
alias Testcontainers.DockerSocketPathStrategy
alias Testcontainers.DockerHostFromPropertiesStrategy
alias Testcontainers.DockerHostFromEnvStrategy
alias DockerEngineAPI.Connection
@timeout 300_000
def get_connection(options \\ []) do
docker_host_url = docker_base_url()
Logger.log("Using docker host url: #{docker_host_url}")
options = Keyword.merge(options, base_url: docker_host_url, recv_timeout: @timeout)
{Connection.new(options), docker_host_url}
end
defp docker_base_url do
strategies = [
%DockerHostFromPropertiesStrategy{key: "tc.host"},
%DockerHostFromEnvStrategy{},
%DockerSocketPathStrategy{socket_paths: ["/var/run/docker.sock"]},
%DockerHostFromPropertiesStrategy{key: "docker.host"},
%DockerSocketPathStrategy{}
]
case DockerHostStrategyEvaluator.run_strategies(strategies, []) do
{:ok, docker_host} ->
DockerUrl.construct(docker_host)
:error ->
exit("Failed to find docker host")
end
end
end