sma*_*kap 6 yandex docker docker-compose clickhouse
我的要求是当我使用 docker-compose 启动 Clickhouse 时在其中创建数据库和表。如果是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"
Run Code Online (Sandbox Code Playgroud)
有什么方法可以为 Clickhouse 实例实现相同的效果吗?
我为此找到了一个不太干净的解决方案。它基本上是将主机目录安装到容器中并运行所有“创建表”和“插入”语句,只要我们不清理已安装的文件夹,就会持续存在!
clickhouse:
image: yandex/clickhouse-server:18.10
ports:
- "8123:8123"
- "9000:9000"
volumes:
- ./data/clickhouse/data:/var/lib/clickhouse
Run Code Online (Sandbox Code Playgroud)
小智 5
随着Add docker-entrypoint-initdb.d support #3695,Clickhouse-server 现在支持在服务器的 docker 镜像中运行初始化脚本。
例如,在 Dockerfile 中:
FROM clickhouse/clickhouse-server
ADD ./docker-entrypoint-initdb.d /docker-entrypoint-initdb.d
Run Code Online (Sandbox Code Playgroud)
添加您的 sql 文件docker-entrypoint-initdb.d
并构建它。
当您从映像生成容器时,其中的所有脚本都docker-entrypoint-initdb.d
将运行。
顺便说一句,除了问题之外,我在任何地方都找不到关于它的文档......
归档时间: |
|
查看次数: |
10074 次 |
最近记录: |