-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcompose.external-s3.yml
More file actions
101 lines (96 loc) · 2.96 KB
/
compose.external-s3.yml
File metadata and controls
101 lines (96 loc) · 2.96 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
services:
fluent-bit:
image: fluent/fluent-bit
container_name: fluent-bit
volumes:
- ${SORA_LOG_PATH}:/log
- ./fluent-bit.yml:/fluent-bit/etc/fluent-bit.yml
networks:
- kohaku
environment:
- AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}
- AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}
depends_on:
- mc
command: /fluent-bit/bin/fluent-bit -c /fluent-bit/etc/fluent-bit.yml
# 外部 S3 互換ストレージ の初期設定用コンテナ
mc:
image: minio/mc:RELEASE.2025-07-21T05-28-08Z
container_name: mc
networks:
- kohaku
environment:
- AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}
- AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}
- S3_ENDPOINT=${S3_ENDPOINT}
- S3_BUCKET=${S3_BUCKET}
- S3_USE_SSL=${S3_USE_SSL:-true}
- RETENTION_PERIOD=${RETENTION_PERIOD}
entrypoint: >
/bin/sh -c "
sleep 5;
if [ \"${S3_USE_SSL:-}\" = \"true\" ]; then
endpoint_scheme=https;
else
endpoint_scheme=http;
fi;
mc alias set mys3 $$endpoint_scheme://${S3_ENDPOINT} ${AWS_ACCESS_KEY_ID} ${AWS_SECRET_ACCESS_KEY};
mc mb --ignore-existing mys3/${S3_BUCKET};
mc ilm rule add --expire-days ${RETENTION_PERIOD} mys3/${S3_BUCKET} || true;
"
# motherduck-duckdb-datasource は ./plugins に展開済みの想定
grafana:
build:
context: ./grafana
dockerfile: Dockerfile
container_name: grafana
ports:
- 3000:3000
networks:
- kohaku
environment:
- GF_LOG_MODE=console
- GF_PATHS_DATA=/var/lib/grafana
- GF_SECURITY_ADMIN_USER=${GF_SECURITY_ADMIN_USER}
- GF_SECURITY_ADMIN_PASSWORD=${GF_SECURITY_ADMIN_PASSWORD}
volumes:
- ./grafana/datasources:/etc/grafana/provisioning/datasources
- ./grafana/dashboards/kohaku.yml:/etc/grafana/provisioning/dashboards/kohaku.yml
- ./grafana/dashboards/kohaku:/var/lib/grafana/dashboards/kohaku
- ./plugins/motherduck-duckdb-datasource:/var/lib/grafana/plugins/motherduck-duckdb-datasource
- duckdb:/var/lib/kohaku
ingester:
build:
context: ./ingester
dockerfile: Dockerfile
container_name: ingester
environment:
- DUCKDB_DB_PATH=${DUCKDB_DB_PATH}
- AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}
- AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}
- S3_ENDPOINT=${S3_ENDPOINT}
- S3_USE_SSL=${S3_USE_SSL:-true}
- S3_BUCKET=${S3_BUCKET}
- S3_PREFIX=${S3_PREFIX}
- INITIAL_MAXIMUM_LOAD=${INITIAL_MAXIMUM_LOAD:-100}
- UPDATE_INTERVAL=${UPDATE_INTERVAL}
- RETENTION_PERIOD=${RETENTION_PERIOD}
depends_on:
- grafana
networks:
- kohaku
volumes:
- ./ingester:/ingester
- ingester-venv:/ingester/.venv
- duckdb:/var/lib/kohaku
volumes:
ingester-venv:
name: kohaku-ingester-venv
driver: local
duckdb:
name: kohaku-volume
driver: local
networks:
kohaku:
name: kohaku-network
driver: bridge