File tree Expand file tree Collapse file tree 12 files changed +134
-0
lines changed
main/java/org/testcontainers/chromadb
java/org/testcontainers/chromadb Expand file tree Collapse file tree 12 files changed +134
-0
lines changed Original file line number Diff line number Diff line change 17
17
- ActiveMQ
18
18
- Azure
19
19
- Cassandra
20
+ - ChromaDB
20
21
- Clickhouse
21
22
- CockroachDB
22
23
- Consul
Original file line number Diff line number Diff line change 17
17
- ActiveMQ
18
18
- Azure
19
19
- Cassandra
20
+ - ChromaDB
20
21
- Clickhouse
21
22
- CockroachDB
22
23
- Consul
Original file line number Diff line number Diff line change 17
17
- ActiveMQ
18
18
- Azure
19
19
- Cassandra
20
+ - ChromaDB
20
21
- Clickhouse
21
22
- CockroachDB
22
23
- CrateDB
Original file line number Diff line number Diff line change @@ -51,6 +51,11 @@ updates:
51
51
ignore :
52
52
- dependency-name : " io.dropwizard.metrics:metrics-core"
53
53
update-types : [ "version-update:semver-major" ]
54
+ - package-ecosystem : " gradle"
55
+ directory : " /modules/chromadb"
56
+ schedule :
57
+ interval : " weekly"
58
+ open-pull-requests-limit : 10
54
59
- package-ecosystem : " gradle"
55
60
directory : " /modules/clickhouse"
56
61
schedule :
Original file line number Diff line number Diff line change 27
27
- changed-files :
28
28
- any-glob-to-any-file :
29
29
- modules/cassandra/**/*
30
+ " modules/chromadb " :
31
+ - changed-files :
32
+ - any-glob-to-any-file :
33
+ - modules/chromadb/**/*
30
34
" modules/clickhouse " :
31
35
- changed-files :
32
36
- any-glob-to-any-file :
Original file line number Diff line number Diff line change @@ -115,6 +115,9 @@ labels:
115
115
- name : modules/cassandra
116
116
color : ' #006b75'
117
117
118
+ - name : modules/chromadb
119
+ color : ' #006b75'
120
+
118
121
- name : modules/clickhouse
119
122
color : ' #006b75'
120
123
Original file line number Diff line number Diff line change
1
+ # ChromaDB
2
+
3
+ Testcontainers module for [ ChromaDB] ( https://registry.hub.docker.com/r/chromadb/chroma )
4
+
5
+ ## ChromaDB's usage examples
6
+
7
+ You can start a ChromaDB container instance from any Java application by using:
8
+
9
+ <!-- codeinclude-->
10
+ [ Default ChromaDB container] ( ../../modules/chromadb/src/test/java/org/testcontainers/chromadb/ChromaDBContainerTest.java ) inside_block: container
11
+ <!-- /codeinclude-->
12
+
13
+ ## Adding this module to your project dependencies
14
+
15
+ Add the following dependency to your ` pom.xml ` /` build.gradle ` file:
16
+
17
+ === "Gradle"
18
+ ``` groovy
19
+ testImplementation "org.testcontainers:chromadb:{{latest_version}}"
20
+ ```
21
+
22
+ === "Maven"
23
+ ``` xml
24
+ <dependency >
25
+ <groupId >org.testcontainers</groupId >
26
+ <artifactId >chromadb</artifactId >
27
+ <version >{{latest_version}}</version >
28
+ <scope >test</scope >
29
+ </dependency >
30
+ ```
Original file line number Diff line number Diff line change 75
75
- modules/databases/yugabytedb.md
76
76
- modules/activemq.md
77
77
- modules/azure.md
78
+ - modules/chromadb.md
78
79
- modules/consul.md
79
80
- modules/docker_compose.md
80
81
- modules/elasticsearch.md
Original file line number Diff line number Diff line change
1
+ description = " Testcontainers :: ChromaDB"
2
+
3
+ dependencies {
4
+ api project(' :testcontainers' )
5
+
6
+ testImplementation ' org.assertj:assertj-core:3.25.1'
7
+ testImplementation ' io.rest-assured:rest-assured:5.4.0'
8
+ }
Original file line number Diff line number Diff line change
1
+ package org .testcontainers .chromadb ;
2
+
3
+ import org .testcontainers .containers .GenericContainer ;
4
+ import org .testcontainers .containers .wait .strategy .Wait ;
5
+ import org .testcontainers .utility .DockerImageName ;
6
+
7
+ /**
8
+ * Testcontainers implementation of ChromaDB.
9
+ * <p>
10
+ * Supported images: {@code chromadb/chroma}, {@code ghcr.io/chroma-core/chroma}
11
+ * <p>
12
+ * Exposed ports: 8000
13
+ */
14
+ public class ChromaDBContainer extends GenericContainer <ChromaDBContainer > {
15
+
16
+ private static final DockerImageName DEFAULT_DOCKER_IMAGE = DockerImageName .parse ("chromadb/chroma" );
17
+
18
+ private static final DockerImageName GHCR_DOCKER_IMAGE = DockerImageName .parse ("ghcr.io/chroma-core/chroma" );
19
+
20
+ public ChromaDBContainer (String dockerImageName ) {
21
+ this (DockerImageName .parse (dockerImageName ));
22
+ }
23
+
24
+ public ChromaDBContainer (DockerImageName dockerImageName ) {
25
+ super (dockerImageName );
26
+ dockerImageName .assertCompatibleWith (DEFAULT_DOCKER_IMAGE , GHCR_DOCKER_IMAGE );
27
+ withExposedPorts (8000 );
28
+ waitingFor (Wait .forHttp ("/api/v1/heartbeat" ));
29
+ }
30
+
31
+ public String getEndpoint () {
32
+ return "http://" + getHost () + ":" + getFirstMappedPort ();
33
+ }
34
+ }
You can’t perform that action at this time.
0 commit comments