首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从docker-compose文件在dockerized Clickhouse实例中创建数据库和表

从docker-compose文件在dockerized Clickhouse实例中创建数据库和表
EN

Stack Overflow用户
提问于 2018-09-06 14:52:08
回答 3查看 4.6K关注 0票数 3

我的需求是使用docker-compose在Clickhouse中创建DB和表。如果是mysql,我会这样做:

代码语言:javascript
复制
mysql_1:
      image: mysql:5.7.16
      environment:
        MYSQL_DATABASE: "one"
        MYSQL_USER: "one_user"
        MYSQL_PASSWORD: "one_user_pass"
        MYSQL_ROOT_PASSWORD: "root"
        MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
      volumes:
       - ./data/one:/docker-entrypoint-initdb.d
      ports:
        - "3306:3306"

有没有办法让Clickhouse实例实现同样的效果呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-11-16 13:34:50

我找到了一个不太干净的解决方案。它基本上是将一个主机目录挂载到容器中,并运行所有的"create tables“和"insert”语句,只要我们不清理挂载的文件夹,它就会一直存在!!

代码语言:javascript
复制
clickhouse:
  image: yandex/clickhouse-server:18.10
  ports:
    - "8123:8123"
    - "9000:9000"
  volumes:
   - ./data/clickhouse/data:/var/lib/clickhouse
票数 4
EN

Stack Overflow用户

发布于 2018-09-06 15:13:34

我检查过Clickhouse,我不认为它在默认的Clickhouse dockerfile中提供了相同的功能。

你可以通过添加你自己的需求来定制Clickhouse镜像,比如执行文件。因此,您所要做的就是使用Clickhouse作为您的自定义映像的基础映像,然后可能编写一个bash脚本,该脚本可能用作您的自定义映像的入口点,并使其基于您将提供的环境变量创建数据库/表,然后使其在结束时启动服务。

票数 0
EN

Stack Overflow用户

发布于 2018-10-01 15:38:53

您可以使用nafigat0r/clickhouse-server:18.12 docker镜像。在docker-compose.yml中,为创建(或使用)特定数据库设置环境变量DATABASE_NAME。您可以选择为特定的TCP端口使用设置DATABASE_PORT

当前的镜像版本对SQL查询有一些限制:每个文件一个。不支持多查询的文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52198099

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档