version: '3.8'
services:
postgres:
image: postgres:13
environment:
- POSTGRES_DB=aistudio
- POSTGRES_USER=aistudio
- POSTGRES_HOST_AUTH_METHOD=trust
volumes:
- postgres:/var/lib/postgresql/data
ports:
- 5432:5432
healthcheck:
test: [ "CMD-SHELL", "pg_isready -U aistudio" ]
interval: 30s
timeout: 30s
retries: 3
restart: always
redis:
image: redis:7.2-alpine
ports:
- 6379:6379
command: redis-server --save 20 1 --loglevel warning
volumes:
- redis:/data
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 1s
timeout: 3s
retries: 30
restart: always
clickhouse:
image: clickhouse/clickhouse-server:24.1.5
volumes:
- clickhouse:/var/lib/clickhouse
ports:
- 9000:9000
- 8123:8123
restart: always
migrate:
image: missingstudio/ai:dev
command: ["migrate"]
environment:
- GATEWAY_POSTGRES_URL=postgres://aistudio@postgres:5432/aistudio?sslmode=disable
depends_on:
- postgres
aistudio:
image: missingstudio/ai:dev
environment:
- GATEWAY_APP_HOST=0.0.0.0
- GATEWAY_APP_PORT=8080
- GATEWAY_REDIS_HOST=redis
- GATEWAY_REDIS_PORT=6379
- GATEWAY_POSTGRES_URL=postgres://aistudio@postgres:5432/aistudio?sslmode=disable
command: ["start"]
ports:
- 8080:8080
depends_on:
- redis
- postgres
- clickhouse
- migrate
volumes:
redis: {}
postgres: {}
clickhouse: {}