/ docker-compose.yml
docker-compose.yml
1 services: 2 db: 3 image: pgvector/pgvector:pg16 4 environment: 5 POSTGRES_USER: postgres 6 POSTGRES_PASSWORD: postgres 7 POSTGRES_DB: ai_business_ops_dev 8 ports: 9 - "5432:5432" 10 volumes: 11 - pgdata:/var/lib/postgresql/data 12 healthcheck: 13 test: ["CMD-SHELL", "pg_isready -U postgres"] 14 interval: 5s 15 timeout: 5s 16 retries: 20 17 18 minio: 19 image: minio/minio:latest 20 command: server /data --console-address ":9001" 21 environment: 22 MINIO_ROOT_USER: ${MINIO_ROOT_USER:-minio} 23 MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD:-miniosecret} 24 ports: 25 - "9000:9000" 26 - "9001:9001" 27 volumes: 28 - miniodata:/data 29 30 createbuckets: 31 image: minio/mc:latest 32 depends_on: 33 - minio 34 entrypoint: > 35 /bin/sh -c " 36 /usr/bin/mc alias set local http://minio:9000 $${MINIO_ROOT_USER:-minio} $${MINIO_ROOT_PASSWORD:-miniosecret}; 37 /usr/bin/mc mb --ignore-existing local/$${S3_BUCKET:-ai-business-ops}; 38 exit 0; 39 " 40 41 app: 42 build: . 43 depends_on: 44 db: 45 condition: service_healthy 46 minio: 47 condition: service_started 48 env_file: 49 - .env 50 environment: 51 DATABASE_URL: ecto://postgres:postgres@db:5432/ai_business_ops_dev 52 S3_ENDPOINT: http://minio:9000 53 PHX_HOST: localhost 54 PORT: 4000 55 ports: 56 - "4000:4000" 57 volumes: 58 - .:/app 59 command: sh -c "mix deps.get && mix ecto.setup && mix phx.server" 60 61 volumes: 62 pgdata: 63 miniodata: