File size: 1,661 Bytes
60b6623
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
bba52b8
 
60b6623
bba52b8
60b6623
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
version: '3.8'

services:
  # PostgreSQL Database
  db:
    image: postgres:16-alpine
    environment:
      POSTGRES_DB: promptaid_e2e
      POSTGRES_USER: promptaid
      POSTGRES_PASSWORD: promptaid_e2e_password
    ports:
      - "5433:5432"
    volumes:
      - postgres_e2e_data:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U promptaid -d promptaid_e2e"]
      interval: 5s
      timeout: 5s
      retries: 5

  # MinIO S3 Storage
  minio:
    image: minio/minio:latest
    environment:
      MINIO_ROOT_USER: minioadmin
      MINIO_ROOT_PASSWORD: minioadmin123
    ports:
      - "9000:9000"
      - "9001:9001"
    volumes:
      - minio_e2e_data:/data
    command: server /data --console-address ":9001"
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
      interval: 10s
      timeout: 5s
      retries: 5

  # Application (Frontend + Backend combined)
  app:
    build:
      context: ..
      dockerfile: Dockerfile
    environment:
      ENV: e2e
      DATABASE_URL: postgresql://promptaid:promptaid_e2e_password@db:5432/promptaid_e2e
      S3_ENDPOINT: http://minio:9000
      S3_ACCESS_KEY: minioadmin
      S3_SECRET_KEY: minioadmin123
      S3_BUCKET: promptaid-e2e
      VISION_PROVIDER: mock
      ADMIN_PASSWORD: admin_e2e_password
    ports:
      - "7860:7860"
    depends_on:
      db:
        condition: service_healthy
      minio:
        condition: service_healthy
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:7860/health"]
      interval: 10s
      timeout: 5s
      retries: 5

volumes:
  postgres_e2e_data:
  minio_e2e_data: