我的要求是使用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示例,有什么方法可以实现同样的效果吗?
3条答案
按热度按时间uwopmtnx1#
我找到了一个不太干净的解决办法。它基本上是将一个主机目录装入容器,并运行所有的“create tables”和“insert”语句,只要我们不清理装入的文件夹,这些语句就会被持久化!!
slwdgvem2#
我查过了
Clickhouse
我不认为它提供了默认的clickhouse dockerfile相同的功能。您可以自定义
Clickhouse
通过添加您自己的需求(如执行文件)来镜像。所以你要做的就是Clickhouse
作为自定义映像的基础映像,可以编写一个bash脚本,用作自定义映像的入口点,并使其基于您将提供的环境变量创建数据库/表,然后使其在最后启动服务。b4wnujal3#
您可以使用nafigat0r/clickhouse-server:18.12 docker 形象。在
docker-compose.yml
设置环境变量DATABASE_NAME
用于创建(或使用)特定数据库。也可以设置DATABASE_PORT
用于特定的tcp端口使用。当前图像版本对sql查询有一些限制:每个文件一个。不支持包含多个查询的文件。