Skip to content

Commit def3f2b

Browse files
Rework docker compose to be isolated across pg versions
1 parent 76cd6b9 commit def3f2b

File tree

1 file changed

+21
-25
lines changed

1 file changed

+21
-25
lines changed

scripts/docker-compose.yaml

Lines changed: 21 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,16 @@
11
x-lakekeeper-env: &lakekeeper-env
22
environment:
33
- LAKEKEEPER__PG_ENCRYPTION_KEY=insecure-encryption-key
4-
- LAKEKEEPER__PG_DATABASE_URL_READ=postgresql://postgres:postgres@postgres:5432/iceberg-catalog
5-
- LAKEKEEPER__PG_DATABASE_URL_WRITE=postgresql://postgres:postgres@postgres:5432/iceberg-catalog
4+
- LAKEKEEPER__PG_DATABASE_URL_READ=postgresql://lakekeeper-postgres:lakekeeper-postgres@lakekeeper-postgres:5432/iceberg-catalog
5+
- LAKEKEEPER__PG_DATABASE_URL_WRITE=postgresql://lakekeeper-postgres:lakekeeper-postgres@lakekeeper-postgres:5432/iceberg-catalog
66
- RUST_LOG=info
77

8-
name: etl
8+
name: etl-pg-${POSTGRES_VERSION:-17}
99

1010
services:
1111
# Start Postgres
1212
postgres:
1313
image: postgres:${POSTGRES_VERSION:-17}
14-
container_name: postgres
1514
environment:
1615
POSTGRES_USER: ${POSTGRES_USER:-postgres}
1716
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-postgres}
@@ -20,10 +19,6 @@ services:
2019
- "${POSTGRES_PORT:-5430}:5432"
2120
volumes:
2221
- ${POSTGRES_DATA_VOLUME:-postgres_data}:/var/lib/postgresql/data
23-
configs:
24-
- source: postgres_init
25-
target: /docker-entrypoint-initdb.d/01-create-iceberg-catalog.sh
26-
mode: 0755
2722
command: >
2823
postgres
2924
-N 1000
@@ -37,10 +32,24 @@ services:
3732
timeout: 5s
3833
retries: 5
3934

35+
lakekeeper-postgres:
36+
image: postgres:17
37+
environment:
38+
POSTGRES_USER: ${LAKEKEEPER_POSTGRES_USER:-lakekeeper-postgres}
39+
POSTGRES_PASSWORD: ${LAKEKEEPER_POSTGRES_PASSWORD:-lakekeeper-postgres}
40+
POSTGRES_DB: ${LAKEKEEPER_POSTGRES_DB:-iceberg-catalog}
41+
volumes:
42+
- ${LAKEKEEPER_POSTGRES_DATA_VOLUME:-lakekeeper_postgres_data}:/var/lib/postgresql/data
43+
restart: unless-stopped
44+
healthcheck:
45+
test: ["CMD-SHELL", "pg_isready -U ${LAKEKEEPER_POSTGRES_USER:-lakekeeper-postgres} -d ${LAKEKEEPER_POSTGRES_DB:-iceberg-catalog}"]
46+
interval: 5s
47+
timeout: 5s
48+
retries: 5
49+
4050
# Start MinIO for S3-compatible object storage
4151
minio:
4252
image: minio/minio:latest
43-
container_name: minio
4453
environment:
4554
MINIO_ROOT_USER: minio-admin
4655
MINIO_ROOT_PASSWORD: minio-admin-password
@@ -59,7 +68,6 @@ services:
5968
# Create MinIO bucket
6069
create-bucket:
6170
image: minio/mc:latest
62-
container_name: create-bucket
6371
depends_on:
6472
minio:
6573
condition: service_healthy
@@ -73,18 +81,16 @@ services:
7381
# Migrate lakekeeper database
7482
migrate-lakekeeper:
7583
image: quay.io/lakekeeper/catalog:latest-main
76-
container_name: migrate-lakekeeper
7784
<<: *lakekeeper-env
7885
restart: "no"
7986
command: ["migrate"]
8087
depends_on:
81-
postgres:
88+
lakekeeper-postgres:
8289
condition: service_healthy
8390

8491
# Start lakekeeper, an iceberg REST catalog
8592
lakekeeper:
8693
image: quay.io/lakekeeper/catalog:latest-main
87-
container_name: lakekeeper
8894
depends_on:
8995
migrate-lakekeeper:
9096
condition: service_completed_successfully
@@ -104,7 +110,6 @@ services:
104110
# Bootstrap lakekeeper. After deployment, lakekeeper needs to be bootstrapped.
105111
bootstrap-lakekeeper:
106112
image: curlimages/curl
107-
container_name: bootstrap-lakekeeper
108113
depends_on:
109114
lakekeeper:
110115
condition: service_healthy
@@ -127,7 +132,6 @@ services:
127132
# Create a warehouse for development and testing
128133
create-warehouse:
129134
image: curlimages/curl
130-
container_name: create-warehouse
131135
depends_on:
132136
lakekeeper:
133137
condition: service_healthy
@@ -153,18 +157,10 @@ services:
153157
volumes:
154158
- ./warehouse.json:/home/curl_user/warehouse.json
155159

156-
configs:
157-
postgres_init:
158-
content: |
159-
#!/bin/bash
160-
set -e
161-
162-
psql -v ON_ERROR_STOP=1 --username "${POSTGRES_USER:-postgres}" --dbname "${POSTGRES_DB:-postgres}" <<-EOSQL
163-
CREATE DATABASE "iceberg-catalog";
164-
EOSQL
165-
166160
volumes:
167161
postgres_data:
168162
driver: local
163+
lakekeeper_postgres_data:
164+
driver: local
169165
minio_data:
170166
driver: local

0 commit comments

Comments
 (0)