Packages
testcontainers
1.0.0-beta
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/ceph_container.ex
# SPDX-License-Identifier: MIT
defmodule Testcontainers.Container.CephContainer do
alias Testcontainers.WaitStrategy.HttpWaitStrategy
alias Testcontainers.WaitStrategy.LogWaitStrategy
alias Testcontainers.Container
def new(options \\ []) do
image = Keyword.get(options, :image, "quay.io/ceph/demo:latest-quincy")
access_key = Keyword.get(options, :access_key, "demo")
secret_key = Keyword.get(options, :secret_key, "demo")
bucket = Keyword.get(options, :bucket, "demo")
Container.new(image,
exposed_ports: [3300, 8080],
environment: %{
CEPH_DEMO_UID: "demo",
CEPH_DEMO_BUCKET: bucket,
CEPH_DEMO_ACCESS_KEY: access_key,
CEPH_DEMO_SECRET_KEY: secret_key,
CEPH_PUBLIC_NETWORK: "0.0.0.0/0",
MON_IP: "127.0.0.1",
RGW_NAME: "localhost"
}
)
|> Container.with_waiting_strategies(wait_strategies(8080, bucket))
end
defp wait_strategies(port, bucket) do
[
LogWaitStrategy.new(
~r/.*Bucket 's3:\/\/#{bucket}\/' created.*/,
300_000,
5000
),
HttpWaitStrategy.new("127.0.0.1", port, "/")
]
end
end