我的要求是在使用docker-compose调出数据库时在Clickhouse中创建数据库和表。如果是mysql,则按以下步骤操作:
Route::post('/store/favorite', 'FavoriteController@favorite');
对于Clickhouse实例,有什么方法可以实现相同目的吗?
答案 0 :(得分:1)
我找到了一个不太干净的解决方案。它基本上是在将主机目录装载到容器中并运行所有“创建表”和“插入”语句,只要我们不清理已装载的文件夹,就可以保留!
clickhouse:
image: yandex/clickhouse-server:18.10
ports:
- "8123:8123"
- "9000:9000"
volumes:
- ./data/clickhouse/data:/var/lib/clickhouse
答案 1 :(得分:0)
我已经检查过Clickhouse
,但我认为默认情况下Clickhouse dockerfile它没有提供相同的功能。
您可以通过添加自己的要求(例如执行文件)来自定义Clickhouse
图像。因此,您要做的就是将Clickhouse
用作自定义图像的基础图像,然后编写一个bash脚本,该脚本可用作自定义图像的入口点,并使其基于以下内容创建数据库/表:您将提供的环境变量,然后使其最终启动服务。
答案 2 :(得分:0)
您可以使用nafigat0r/clickhouse-server:18.12码头工人形象。在docker-compose.yml
中设置环境变量DATABASE_NAME
,以创建(或使用)特定的数据库。 (可选)您可以为特定的TCP端口使用情况设置DATABASE_PORT
。
当前图像版本对SQL查询有一些限制:每个文件一个。不支持具有多查询的文件。