Spaces:
Running
Running
File size: 6,281 Bytes
907b200 7922c7a 907b200 | 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 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 | name: ailixir
services:
# ββ Laravel API βββββββββββββββββββββββββββββββββββββββββββββ
laravel:
build:
context: .
dockerfile: Dockerfile
container_name: ailixir-laravel
restart: unless-stopped
ports:
- "${LARAVEL_HTTP_PORT:-8080}:8000"
env_file:
- docker/laravel.env
environment:
CLOUDINARY_URL: cloudinary://dummy_key:dummy_secret@dummy_cloud
CLOUDINARY_CLOUD_NAME: dummy_cloud
CLOUDINARY_API_KEY: dummy_key
CLOUDINARY_API_SECRET: dummy_secret
GENERATION_SERVICE_URL: http://generation:8000
CHEMICAL_AI_URL: http://chemical-rag:5000
ADMET_AI_URL: http://admet:8000
AI_ADMET_SERVICE_URL: http://admet:8000
DRUG_REPURPOSING_URL: http://drug-repurposing:8000
AI_SERVICE_URL: http://drug-repurposing:8000
AI_INTEGRATION_ROUTES_ENABLED: "true"
volumes:
- laravel-storage:/var/www/html/storage
depends_on:
generation:
condition: service_healthy
admet:
condition: service_healthy
chemical-rag:
condition: service_healthy
drug-repurposing:
condition: service_healthy
networks:
- ailixir
queue:
build:
context: .
dockerfile: Dockerfile
container_name: ailixir-queue
restart: unless-stopped
env_file:
- docker/laravel.env
environment:
CLOUDINARY_URL: cloudinary://dummy_key:dummy_secret@dummy_cloud
CLOUDINARY_CLOUD_NAME: dummy_cloud
CLOUDINARY_API_KEY: dummy_key
CLOUDINARY_API_SECRET: dummy_secret
CHEMICAL_AI_URL: http://chemical-rag:5000
ADMET_AI_URL: http://admet:8000
AI_ADMET_SERVICE_URL: http://admet:8000
DRUG_REPURPOSING_URL: http://drug-repurposing:8000
AI_SERVICE_URL: http://drug-repurposing:8000
RUN_MIGRATIONS: "false"
# Wait for Laravel to complete migrations before starting queue
command: sh -c "sleep 30 && php artisan queue:work --sleep=3 --tries=3 --timeout=300"
depends_on:
laravel:
condition: service_started
healthcheck:
test: ["CMD", "php", "artisan", "queue:work", "--once"]
interval: 30s
timeout: 10s
retries: 5
start_period: 90s
networks:
- ailixir
# ββ AI microservices ββββββββββββββββββββββββββββββββββββββββ
generation-deeppurpose:
build:
context: ./ai_apps/generation
dockerfile: Dockerfile.dp
container_name: ailixir-generation-deeppurpose
restart: unless-stopped
ports:
- "${GENERATION_DEEPPURPOSE_HTTP_PORT:-8006}:8001"
volumes:
- generation-outputs:/app/outputs
- ./ai_apps/generation/bundle:/app/bundle
networks:
- ailixir
healthcheck:
test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8001/health')"]
interval: 30s
timeout: 10s
retries: 8
start_period: 240s
deploy:
resources:
limits:
memory: 6G
generation:
build:
context: ./ai_apps/generation
dockerfile: Dockerfile.api
container_name: ailixir-generation
restart: unless-stopped
ports:
- "${GENERATION_HTTP_PORT:-8005}:8000"
environment:
PUBLIC_BASE_URL: http://localhost:8005
DEEPPURPOSE_URL: http://generation-deeppurpose:8001/reinvent_predict
REINVENT_DEVICE: cpu
NVIDIA_VISIBLE_DEVICES: all
NVIDIA_DRIVER_CAPABILITIES: compute,utility
ADGPU_BIN: /opt/AutoDock-GPU/bin/autodock_gpu_64wi
volumes:
- generation-outputs:/app/outputs
- ./ai_apps/generation/bundle:/app/bundle
depends_on:
generation-deeppurpose:
condition: service_healthy
networks:
- ailixir
healthcheck:
test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8000/health')"]
interval: 30s
timeout: 10s
retries: 8
start_period: 300s
deploy:
resources:
limits:
memory: 8G
admet:
build:
context: ./ai_apps/ADMIT/admet_inference
dockerfile: Dockerfile
container_name: ailixir-admet
restart: unless-stopped
ports:
- "${ADMET_HTTP_PORT:-8002}:8000"
environment:
PYTHONUNBUFFERED: "1"
LOG_LEVEL: INFO
networks:
- ailixir
healthcheck:
test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8000/health')"]
interval: 30s
timeout: 10s
retries: 8
start_period: 240s
deploy:
resources:
limits:
memory: 6G
drug-repurposing:
build:
context: "./ai_apps/Drug Reporposing"
dockerfile: docker/Dockerfile
container_name: ailixir-drug-repurposing
restart: unless-stopped
ports:
- "${DRUG_REPURPOSING_HTTP_PORT:-8001}:8000"
environment:
HOST: 0.0.0.0
PORT: "8000"
DEBUG: "False"
LOG_LEVEL: INFO
USE_MOCK_MODEL: "False"
USE_MOCK_DRUGS: "False"
networks:
- ailixir
healthcheck:
test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8000/health')"]
interval: 30s
timeout: 10s
retries: 5
start_period: 180s
deploy:
resources:
limits:
memory: 8G
chemical-rag:
build:
context: ./ai_apps/chemical-rag-system/chemical-rag-system
dockerfile: Dockerfile
container_name: ailixir-chemical-rag
restart: unless-stopped
ports:
- "${CHEMICAL_RAG_HTTP_PORT:-5000}:5000"
environment:
PYTHONUNBUFFERED: "1"
API_PORT: "5000"
API_HOST: 0.0.0.0
volumes:
- chemical-rag-data:/app/data
networks:
- ailixir
healthcheck:
test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:5000/health')"]
interval: 30s
timeout: 10s
retries: 5
start_period: 180s
deploy:
resources:
limits:
memory: 4G
networks:
ailixir:
driver: bridge
volumes:
generation-outputs:
laravel-storage:
chemical-rag-data:
|