mirror of
https://github.com/databasus/databasus.git
synced 2026-04-06 00:32:03 +02:00
59 lines
1.7 KiB
Plaintext
59 lines
1.7 KiB
Plaintext
services:
|
|
dev-postgres:
|
|
image: postgres:17
|
|
container_name: dev-postgres
|
|
environment:
|
|
POSTGRES_DB: devdb
|
|
POSTGRES_USER: devuser
|
|
POSTGRES_PASSWORD: devpassword
|
|
ports:
|
|
- "7433:5432"
|
|
command:
|
|
- bash
|
|
- -c
|
|
- |
|
|
mkdir -p /wal-queue && chown postgres:postgres /wal-queue
|
|
exec docker-entrypoint.sh postgres \
|
|
-c wal_level=replica \
|
|
-c max_wal_senders=3 \
|
|
-c archive_mode=on \
|
|
-c "archive_command=cp %p /wal-queue/%f"
|
|
volumes:
|
|
- ./wal-queue:/wal-queue
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U devuser -d devdb"]
|
|
interval: 2s
|
|
timeout: 5s
|
|
retries: 30
|
|
|
|
db-writer:
|
|
image: postgres:17
|
|
container_name: dev-db-writer
|
|
depends_on:
|
|
dev-postgres:
|
|
condition: service_healthy
|
|
environment:
|
|
PGHOST: dev-postgres
|
|
PGPORT: "5432"
|
|
PGUSER: devuser
|
|
PGPASSWORD: devpassword
|
|
PGDATABASE: devdb
|
|
command:
|
|
- bash
|
|
- -c
|
|
- |
|
|
echo "Waiting for postgres..."
|
|
until pg_isready -h dev-postgres -U devuser -d devdb; do sleep 1; done
|
|
|
|
psql -c "DROP TABLE IF EXISTS wal_generator;"
|
|
psql -c "CREATE TABLE wal_generator (id SERIAL PRIMARY KEY, data TEXT NOT NULL);"
|
|
echo "Starting WAL generation loop..."
|
|
while true; do
|
|
echo "Inserting ~50MB of data..."
|
|
psql -c "INSERT INTO wal_generator (data) SELECT repeat(md5(random()::text), 640) FROM generate_series(1, 2500);"
|
|
echo "Deleting data..."
|
|
psql -c "DELETE FROM wal_generator;"
|
|
echo "Cycle complete, sleeping 5s..."
|
|
sleep 5
|
|
done
|