Skip to content

Commit 8873601

Browse files
Merge pull request #20 from ATNoG/hotfix/table_creation
Init scripts to clickhouse
2 parents d10a017 + 2fe7f2e commit 8873601

File tree

3 files changed

+63
-1
lines changed

3 files changed

+63
-1
lines changed

Dockerfile.clickhouse-init

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
FROM clickhouse/clickhouse-server:latest
2+
3+
COPY init-clickhouse.sh /usr/local/bin/init-clickhouse.sh
4+
RUN chmod +x /usr/local/bin/init-clickhouse.sh
5+
6+
ENTRYPOINT ["/usr/local/bin/init-clickhouse.sh"]

docker-compose.yml

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,32 @@ services:
3232
volumes:
3333
- clickhouse_data:/var/lib/clickhouse
3434
- clickhouse_logs:/var/log/clickhouse-server
35-
- ./sql:/docker-entrypoint-initdb.d
3635
networks:
3736
- nwdaf-network
3837
restart: unless-stopped
38+
healthcheck:
39+
test: ["CMD", "clickhouse-client", "--query", "SELECT 1"]
40+
interval: 5s
41+
timeout: 3s
42+
retries: 5
43+
44+
clickhouse-init:
45+
build:
46+
context: .
47+
dockerfile: Dockerfile.clickhouse-init
48+
container_name: clickhouse-init
49+
depends_on:
50+
clickhouse:
51+
condition: service_healthy
52+
environment:
53+
- CLICKHOUSE_HOST=clickhouse
54+
- CLICKHOUSE_USER=${CLICKHOUSE_USER}
55+
- CLICKHOUSE_PASSWORD=${CLICKHOUSE_PASSWORD}
56+
volumes:
57+
- ./sql:/sql:ro
58+
networks:
59+
- nwdaf-network
60+
restart: "no"
3961

4062
data-storage:
4163
container_name: data-storage

init-clickhouse.sh

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
#!/bin/bash
2+
set -e
3+
4+
# ClickHouse connection settings
5+
HOST="${CLICKHOUSE_HOST:-clickhouse}"
6+
USER="${CLICKHOUSE_USER:-default}"
7+
PASSWORD="${CLICKHOUSE_PASSWORD}"
8+
9+
# Build clickhouse-client command with credentials
10+
if [ -n "$PASSWORD" ]; then
11+
CLICKHOUSE_CMD="clickhouse-client --host $HOST --user $USER --password $PASSWORD"
12+
else
13+
CLICKHOUSE_CMD="clickhouse-client --host $HOST --user $USER"
14+
fi
15+
16+
# Wait for ClickHouse to be ready
17+
echo "Waiting for ClickHouse to be ready..."
18+
until $CLICKHOUSE_CMD --query "SELECT 1" > /dev/null 2>&1; do
19+
echo "ClickHouse is unavailable - sleeping"
20+
sleep 2
21+
done
22+
23+
echo "ClickHouse is up - executing SQL scripts"
24+
25+
# Execute all SQL files in /sql directory in order
26+
for sql_file in /sql/*.sql; do
27+
if [ -f "$sql_file" ]; then
28+
echo "Executing: $sql_file"
29+
$CLICKHOUSE_CMD --multiquery < "$sql_file"
30+
echo "✓ Completed: $sql_file"
31+
fi
32+
done
33+
34+
echo "All SQL scripts executed successfully!"

0 commit comments

Comments
 (0)