我的需求是使用docker-compose在Clickhouse中创建DB和表。如果是mysql,我会这样做:
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实例实现同样的效果呢?
发布于 2018-11-16 13:34:50
我找到了一个不太干净的解决方案。它基本上是将一个主机目录挂载到容器中,并运行所有的"create tables“和"insert”语句,只要我们不清理挂载的文件夹,它就会一直存在!!
clickhouse:
image: yandex/clickhouse-server:18.10
ports:
- "8123:8123"
- "9000:9000"
volumes:
- ./data/clickhouse/data:/var/lib/clickhouse发布于 2018-09-06 15:13:34
我检查过Clickhouse,我不认为它在默认的Clickhouse dockerfile中提供了相同的功能。
你可以通过添加你自己的需求来定制Clickhouse镜像,比如执行文件。因此,您所要做的就是使用Clickhouse作为您的自定义映像的基础映像,然后可能编写一个bash脚本,该脚本可能用作您的自定义映像的入口点,并使其基于您将提供的环境变量创建数据库/表,然后使其在结束时启动服务。
发布于 2018-10-01 15:38:53
您可以使用nafigat0r/clickhouse-server:18.12 docker镜像。在docker-compose.yml中,为创建(或使用)特定数据库设置环境变量DATABASE_NAME。您可以选择为特定的TCP端口使用设置DATABASE_PORT。
当前的镜像版本对SQL查询有一些限制:每个文件一个。不支持多查询的文件。
https://stackoverflow.com/questions/52198099
复制相似问题