Packages
testcontainers
0.9.2
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/container/redis_container.ex
# SPDX-License-Identifier: MIT
# Original by: Marco Dallagiacoma @ 2023 in https://github.com/dallagi/excontainers
# Modified by: Jarl André Hübenthal @ 2023
defmodule Testcontainers.Container.RedisContainer do
@moduledoc """
Functions to build and interact with Redis containers.
"""
alias Testcontainers.Container
alias Testcontainers.WaitStrategy.CommandWaitStrategy
@redis_port 6379
@wait_strategy CommandWaitStrategy.new(["redis-cli", "PING"])
@doc """
Creates a Redis container.
Runs Redis 6.0 by default, but a custom image can also be set.
"""
def new(image \\ "redis:6.0-alpine", _opts \\ []) do
Container.new(
image,
exposed_ports: [@redis_port],
environment: %{}
)
|> Container.with_waiting_strategy(@wait_strategy)
end
@doc """
Returns the port on the _host machine_ where the Redis container is listening.
"""
def port(%Container{} = container), do: Container.mapped_port(container, @redis_port)
@doc """
Returns the connection url to connect to Redis from the _host machine_.
"""
def connection_url(%Container{} = container), do: "redis://localhost:#{port(container)}/"
end