ClickHouse / metabase-clickhouse-driver

ClickHouse database driver for the Metabase business intelligence front-end
Apache License 2.0
461 stars 84 forks source link

Unable to start docker container with this plugin #225

Closed championswimmer closed 2 months ago

championswimmer commented 4 months ago

Unable to start this with docker

Versions

        METABASE_VERSION: "v0.48.2"
        METABASE_CLICKHOUSE_DRIVER_VERSION: "1.3.2"

Here are the logs when it starts. Somehow it is not able to extract the zip it seems

metabase  | 2024-02-18 18:36:49,591 INFO metabase.plugins :: Loading plugins in /plugins...
metabase  | 2024-02-18 18:36:50,699 INFO util.files :: Extract file /modules/druid.metabase-driver.jar -> /plugins/druid.metabase-driver.jar
metabase  | 2024-02-18 18:36:50,735 INFO util.files :: Extract file /modules/sqlite.metabase-driver.jar -> /plugins/sqlite.metabase-driver.jar
metabase  | 2024-02-18 18:36:50,931 INFO util.files :: Extract file /modules/snowflake.metabase-driver.jar -> /plugins/snowflake.metabase-driver.jar
metabase  | 2024-02-18 18:36:52,016 INFO util.files :: Extract file /modules/googleanalytics.metabase-driver.jar -> /plugins/googleanalytics.metabase-driver.jar
metabase  | 2024-02-18 18:36:52,051 INFO util.files :: Extract file /modules/redshift.metabase-driver.jar -> /plugins/redshift.metabase-driver.jar
metabase  | 2024-02-18 18:36:52,070 INFO util.files :: Extract file /modules/oracle.metabase-driver.jar -> /plugins/oracle.metabase-driver.jar
metabase  | 2024-02-18 18:36:52,076 INFO util.files :: Extract file /modules/sqlserver.metabase-driver.jar -> /plugins/sqlserver.metabase-driver.jar
metabase  | 2024-02-18 18:36:52,102 INFO util.files :: Extract file /modules/sparksql.metabase-driver.jar -> /plugins/sparksql.metabase-driver.jar
metabase  | 2024-02-18 18:36:52,260 INFO util.files :: Extract file /modules/presto-jdbc.metabase-driver.jar -> /plugins/presto-jdbc.metabase-driver.jar
metabase  | 2024-02-18 18:36:52,404 INFO util.files :: Extract file /modules/bigquery-cloud-sdk.metabase-driver.jar -> /plugins/bigquery-cloud-sdk.metabase-driver.jar
metabase  | 2024-02-18 18:36:52,862 INFO util.files :: Extract file /modules/mongo.metabase-driver.jar -> /plugins/mongo.metabase-driver.jar
metabase  | 2024-02-18 18:36:52,912 INFO util.files :: Extract file /modules/vertica.metabase-driver.jar -> /plugins/vertica.metabase-driver.jar
metabase  | 2024-02-18 18:36:52,916 INFO util.files :: Extract file /modules/athena.metabase-driver.jar -> /plugins/athena.metabase-driver.jar
metabase  | 2024-02-18 18:36:54,125 ERROR metabase.core :: Metabase Initialization FAILED
metabase  | java.util.zip.ZipException: zip END header not found
metabase  |     at jdk.zipfs/jdk.nio.zipfs.ZipFileSystem.zerror(Unknown Source)
metabase  |     at jdk.zipfs/jdk.nio.zipfs.ZipFileSystem.findEND(Unknown Source)
metabase  |     at jdk.zipfs/jdk.nio.zipfs.ZipFileSystem.initCEN(Unknown Source)
metabase  |     at jdk.zipfs/jdk.nio.zipfs.ZipFileSystem.<init>(Unknown Source)
metabase  |     at jdk.zipfs/jdk.nio.zipfs.ZipFileSystemProvider.newFileSystem(Unknown Source)
metabase  |     at java.base/java.nio.file.FileSystems.newFileSystem(Unknown Source)
metabase  |     at metabase.util.files$file_exists_in_archive_QMARK_.invokeStatic(files.clj:157)
metabase  |     at metabase.util.files$file_exists_in_archive_QMARK_.doInvoke(files.clj:154)
metabase  |     at clojure.lang.RestFn.invoke(RestFn.java:423)
metabase  |     at metabase.plugins$has_manifest_QMARK_.invokeStatic(plugins.clj:156)
metabase  |     at metabase.plugins$has_manifest_QMARK_.invoke(plugins.clj:155)
metabase  |     at clojure.core$sort_by$fn__6045.invoke(core.clj:3132)
metabase  |     at clojure.lang.AFunction.compare(AFunction.java:51)
metabase  |     at java.base/java.util.TimSort.countRunAndMakeAscending(Unknown Source)
metabase  |     at java.base/java.util.TimSort.sort(Unknown Source)
metabase  |     at java.base/java.util.Arrays.sort(Unknown Source)
metabase  |     at clojure.core$sort.invokeStatic(core.clj:3116)
metabase  |     at clojure.core$sort_by.invokeStatic(core.clj:3120)
metabase  |     at clojure.core$sort_by.invokeStatic(core.clj:3120)
metabase  |     at clojure.core$sort_by.invoke(core.clj:3120)
metabase  |     at metabase.plugins$init_plugins_BANG_.invokeStatic(plugins.clj:164)
metabase  |     at metabase.plugins$init_plugins_BANG_.invoke(plugins.clj:158)
metabase  |     at metabase.plugins$load_BANG_.invokeStatic(plugins.clj:174)
metabase  |     at metabase.plugins$load_BANG_.invoke(plugins.clj:170)
metabase  |     at metabase.plugins$load_plugins_BANG_.invokeStatic(plugins.clj:201)
metabase  |     at metabase.plugins$load_plugins_BANG_.invoke(plugins.clj:180)
metabase  |     at metabase.core$init_BANG__STAR_.invokeStatic(core.clj:107)
metabase  |     at metabase.core$init_BANG__STAR_.invoke(core.clj:97)
metabase  |     at metabase.core$init_BANG_.invokeStatic(core.clj:154)
metabase  |     at metabase.core$init_BANG_.invoke(core.clj:149)
metabase  |     at metabase.core$start_normally.invokeStatic(core.clj:166)
metabase  |     at metabase.core$start_normally.invoke(core.clj:160)
metabase  |     at metabase.core$entrypoint.invokeStatic(core.clj:199)
metabase  |     at metabase.core$entrypoint.doInvoke(core.clj:193)
metabase  |     at clojure.lang.RestFn.invoke(RestFn.java:397)
metabase  |     at clojure.lang.AFn.applyToHelper(AFn.java:152)
metabase  |     at clojure.lang.RestFn.applyTo(RestFn.java:132)
metabase  |     at clojure.lang.Var.applyTo(Var.java:705)
metabase  |     at clojure.core$apply.invokeStatic(core.clj:667)
metabase  |     at clojure.core$apply.invoke(core.clj:662)
metabase  |     at metabase.bootstrap$_main.invokeStatic(bootstrap.clj:31)
metabase  |     at metabase.bootstrap$_main.doInvoke(bootstrap.clj:28)
metabase  |     at clojure.lang.RestFn.invoke(RestFn.java:397)
metabase  |     at clojure.lang.AFn.applyToHelper(AFn.java:152)
metabase  |     at clojure.lang.RestFn.applyTo(RestFn.java:132)
metabase  |     at metabase.bootstrap.main(Unknown Source)
metabase  | 2024-02-18 18:36:54,751 INFO metabase.core :: Metabase Shutting Down ...
metabase  | 2024-02-18 18:36:54,764 INFO metabase.server :: Shutting Down Embedded Jetty Webserver
slvrtrn commented 4 months ago

Is it possible that you are trying to launch Metabase with the driver as a ZIP archive (and not JAR as Metabase expects)?

slvrtrn commented 4 months ago

Assuming you have clickhouse.metabase-driver.jar (not zip), users.xml, and config.xml in the same directory as the following docker-compose.yml:

version: '3.8'
services:
  clickhouse:
    image: 'clickhouse/clickhouse-server:24.1-alpine'
    container_name: docker-test-metabase-clickhouse-server
    ports:
      - '8123:8123'
      - '9000:9000'
    ulimits:
      nofile:
        soft: 262144
        hard: 262144
    volumes:
      - './config.xml:/etc/clickhouse-server/config.xml'
      - './users.xml:/etc/clickhouse-server/users.xml'

  metabase:
    image: metabase/metabase:v0.48.1
    container_name: docker-test-metabase-with-clickhouse-driver
    environment:
      'MB_HTTP_TIMEOUT': '5000'
      'JAVA_TIMEZONE': 'UTC'
    ports:
      - '3000:3000'
    volumes:
      - './clickhouse.metabase-driver.jar:/plugins/clickhouse.jar'

(or just use ClickHouse started elsewhere, then remove it from this compose file), it works:

> docker logs docker-test-metabase-with-clickhouse-driver | grep clickhouse

2024-02-18 18:56:57,629 DEBUG plugins.lazy-loaded-driver :: Registering lazy loading driver :clickhouse...
2024-02-18 18:56:57,629 INFO driver.impl :: Registered driver :clickhouse (parents: [:sql-jdbc]) 🚚

If you need sample config.xml or users.xml for ClickHouse, the ones that are used for the driver tests are here: https://github.com/ClickHouse/metabase-clickhouse-driver/tree/master/.docker/clickhouse/single_node