Files
papercrate/docker-compose.dev.yml
T
2025-11-20 16:54:12 +01:00

96 lines
2.4 KiB
YAML

services:
postgres:
image: postgres:16-alpine
environment:
POSTGRES_USER: papercrate
POSTGRES_PASSWORD: papercrate_dev
POSTGRES_DB: papercrate
ports:
- "5432:5432"
volumes:
- postgres_data:/var/lib/postgresql/data
- ./backend/postgres-init:/docker-entrypoint-initdb.d
healthcheck:
test: ["CMD-SHELL", "pg_isready -U papercrate"]
interval: 5s
timeout: 5s
retries: 5
minio:
image: minio/minio:latest
command: server /data --console-address ":9001"
environment:
MINIO_ROOT_USER: minioadmin
MINIO_ROOT_PASSWORD: minioadmin
ports:
- "9000:9000" # S3 API
- "9001:9001" # Console
volumes:
- minio_data:/data
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
interval: 30s
timeout: 20s
retries: 3
createbuckets:
image: minio/mc:latest
depends_on:
minio:
condition: service_healthy
entrypoint: >
/bin/sh -c "
/usr/bin/mc alias set myminio http://minio:9000 minioadmin minioadmin;
/usr/bin/mc mb myminio/documents --ignore-existing;
/usr/bin/mc anonymous set download myminio/documents;
exit 0;
"
quickwit:
image: quickwit/quickwit:0.8.2
command: ["run"]
environment:
QW_ENABLE_API_AUTH: "false"
QW_DATA_DIR: /quickwit/data
ports:
- "7280:7280"
volumes:
- quickwit_data:/quickwit/data
healthcheck:
test: ["CMD", "curl", "-sf", "http://127.0.0.1:7280/api/v1/version"]
interval: 10s
timeout: 5s
retries: 5
admin-bootstrap:
build:
context: ./backend
depends_on:
postgres:
condition: service_healthy
quickwit:
condition: service_healthy
environment:
DATABASE_URL: postgres://papercrate:papercrate_dev@postgres:5432/papercrate
DATABASE_MAX_POOL_SIZE: 2
AWS_ENDPOINT_URL: http://minio:9000
AWS_ACCESS_KEY_ID: minioadmin
AWS_SECRET_ACCESS_KEY: minioadmin
AWS_REGION: us-east-1
S3_BUCKET: documents
JWT_SECRET: change-me-super-secret
QUICKWIT_ENDPOINT: http://quickwit:7280
entrypoint: []
command: >
/bin/sh -c "
echo 'Running database migrations' &&
diesel migration run
"
user: root
restart: "no"
volumes:
postgres_data:
minio_data:
quickwit_data: