Skip to content

Commit cfc64bd

Browse files
authored
Add clickhouse/clickhouse-server compatibility (#5488)
`clickhouse` was initially developed by Yandex and now it is OpenSource. See more [here](https://clickhouse.com/blog/yandex-opensources-click-house/) For backward compatibility, we will be supporting the image provided by Yandex too.
1 parent 1f7dc46 commit cfc64bd

File tree

3 files changed

+24
-3
lines changed

3 files changed

+24
-3
lines changed

modules/clickhouse/src/main/java/org/testcontainers/containers/ClickHouseContainer.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ public class ClickHouseContainer extends JdbcDatabaseContainer {
1313

1414
private static final DockerImageName DEFAULT_IMAGE_NAME = DockerImageName.parse("yandex/clickhouse-server");
1515

16+
private static final DockerImageName CLICKHOUSE_IMAGE_NAME = DockerImageName.parse("clickhouse/clickhouse-server");
17+
1618
@Deprecated
1719
public static final String IMAGE = DEFAULT_IMAGE_NAME.getUnversionedPart();
1820

@@ -49,7 +51,7 @@ public ClickHouseContainer(String dockerImageName) {
4951

5052
public ClickHouseContainer(final DockerImageName dockerImageName) {
5153
super(dockerImageName);
52-
dockerImageName.assertCompatibleWith(DEFAULT_IMAGE_NAME);
54+
dockerImageName.assertCompatibleWith(DEFAULT_IMAGE_NAME, CLICKHOUSE_IMAGE_NAME);
5355

5456
withExposedPorts(HTTP_PORT, NATIVE_PORT);
5557
waitingFor(

modules/clickhouse/src/test/java/org/testcontainers/ClickhouseTestImages.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,6 @@
33
import org.testcontainers.utility.DockerImageName;
44

55
public interface ClickhouseTestImages {
6-
DockerImageName CLICKHOUSE_IMAGE = DockerImageName.parse("yandex/clickhouse-server:18.10.3");
6+
DockerImageName YANDEX_CLICKHOUSE_IMAGE = DockerImageName.parse("yandex/clickhouse-server:18.10.3");
7+
DockerImageName CLICKHOUSE_IMAGE = DockerImageName.parse("clickhouse/clickhouse-server:21.9.2-alpine");
78
}

modules/clickhouse/src/test/java/org/testcontainers/junit/clickhouse/SimpleClickhouseTest.java

+19-1
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,38 @@
11
package org.testcontainers.junit.clickhouse;
22

33
import org.junit.Test;
4+
import org.junit.runner.RunWith;
5+
import org.junit.runners.Parameterized;
46
import org.testcontainers.ClickhouseTestImages;
57
import org.testcontainers.containers.ClickHouseContainer;
68
import org.testcontainers.db.AbstractContainerDatabaseTest;
9+
import org.testcontainers.utility.DockerImageName;
710

811
import java.sql.ResultSet;
912
import java.sql.SQLException;
1013

1114
import static org.rnorth.visibleassertions.VisibleAssertions.assertEquals;
1215

16+
@RunWith(Parameterized.class)
1317
public class SimpleClickhouseTest extends AbstractContainerDatabaseTest {
1418

19+
private final DockerImageName imageName;
20+
21+
public SimpleClickhouseTest(DockerImageName imageName) {
22+
this.imageName = imageName;
23+
}
24+
25+
@Parameterized.Parameters(name = "{0}")
26+
public static Object[][] data() {
27+
return new Object[][] { //
28+
{ ClickhouseTestImages.CLICKHOUSE_IMAGE },
29+
{ ClickhouseTestImages.YANDEX_CLICKHOUSE_IMAGE },
30+
};
31+
}
32+
1533
@Test
1634
public void testSimple() throws SQLException {
17-
try (ClickHouseContainer clickhouse = new ClickHouseContainer(ClickhouseTestImages.CLICKHOUSE_IMAGE)) {
35+
try (ClickHouseContainer clickhouse = new ClickHouseContainer(this.imageName)) {
1836
clickhouse.start();
1937

2038
ResultSet resultSet = performQuery(clickhouse, "SELECT 1");

0 commit comments

Comments
 (0)