-
Notifications
You must be signed in to change notification settings - Fork 22
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
184 lines (169 loc) · 3.7 KB
/
docker-compose.yml
File metadata and controls
184 lines (169 loc) · 3.7 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
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
# Compose builds are host-arch / single-platform. Multi-arch is a release-time
# concern (real validation requires `--push` to a registry — `docker compose
# build` cannot `--load` a multi-platform manifest list). Multi-arch overrides
# live in `docker-bake.hcl` and ship via the release workflow (PLE-358); see
# README "Multi-arch builds".
x-extract:
&extract
build:
context: extract
args:
- CHADWICK_VERSION
- RETROSHEET_RELEASE_DATE
- RETROSHEET_SHA256
- BASEBALLDATABANK_VERSION
- BUILD_ENV
- BOXBALL_LOG_LEVEL
image: ${REPO}:extract-${VERSION}
x-ddl:
&ddl
build:
context: transform
dockerfile: ddl.Dockerfile
args:
- VERSION
- BOXBALL_LOG_LEVEL
image: ${REPO}:ddl-${VERSION}
x-parquet:
&parquet
build:
context: transform
dockerfile: parquet.Dockerfile
args:
- VERSION
- BOXBALL_LOG_LEVEL
image: ${REPO}:parquet-${VERSION}
depends_on:
- extract
x-csv:
&csv
build:
context: transform
dockerfile: csv.Dockerfile
args:
- VERSION
image: ${REPO}:csv-${VERSION}
depends_on:
- extract
x-clickhouse:
&clickhouse
build:
context: load/clickhouse
dockerfile: ../Dockerfile
target: clickhouse
args:
- VERSION
image: ${REPO}:clickhouse-${VERSION}
volumes:
- ~/boxball/clickhouse:/var/lib/clickhouse
depends_on:
- parquet
- ddl
x-postgres:
&postgres
build:
context: load/postgres
dockerfile: ../Dockerfile
target: postgres
args:
- VERSION
image: ${REPO}:postgres-${VERSION}
volumes:
- ~/boxball/postgres:/var/lib/postgresql/data
depends_on:
- csv
- ddl
x-postgres-columnar:
&postgres-columnar
build:
context: load/postgres-columnar
dockerfile: ../Dockerfile
target: postgres-columnar
# Pinned amd64 even for compose host-arch builds: Citus packagecloud has
# no arm64 .debs, so an arm64 host (e.g. Apple Silicon) can't build this
# target natively. Single-platform pin works under the default docker
# driver — only multi-platform fails. arm64 hosts will emulate via QEMU
# (slow); use the plain `postgres` target if you need native arm64.
platforms:
- "linux/amd64"
args:
- VERSION
image: ${REPO}:postgres-columnar-${VERSION}
volumes:
- ~/boxball/postgres-columnar:/var/lib/postgresql/data
depends_on:
- csv
- ddl
x-mysql:
&mysql
build:
context: load/mysql
dockerfile: ../Dockerfile
target: mysql
args:
- VERSION
image: ${REPO}:mysql-${VERSION}
volumes:
- ~/boxball/mysql:/var/lib/mysql
depends_on:
- csv
- ddl
x-sqlite:
&sqlite
build:
context: load
target: sqlite
args:
- VERSION
image: ${REPO}:sqlite-${VERSION}
volumes:
- ~/boxball/sqlite:/db
depends_on:
- csv
- ddl
services:
extract:
<< : *extract
extract-latest:
<< : *extract
image: ${REPO}:extract-latest
ddl:
<< : *ddl
ddl-latest:
<< : *ddl
image: ${REPO}:ddl-latest
parquet:
<< : *parquet
parquet-latest:
<< : *parquet
image: ${REPO}:parquet-latest
csv:
<< : *csv
csv-latest:
<< : *csv
image: ${REPO}:csv-latest
clickhouse:
<< : *clickhouse
clickhouse-latest:
<< : *clickhouse
image: ${REPO}:clickhouse-latest
postgres:
<< : *postgres
postgres-latest:
<< : *postgres
image: ${REPO}:postgres-latest
postgres-columnar:
<< : *postgres-columnar
postgres-columnar-latest:
<< : *postgres-columnar
image: ${REPO}:postgres-columnar-latest
mysql:
<< : *mysql
mysql-latest:
<< : *mysql
image: ${REPO}:mysql-latest
sqlite:
<< : *sqlite
sqlite-latest:
<< : *sqlite
image: ${REPO}:sqlite-latest