ailixir-api / DOCKER.md
AILIXIR Bot
Auto-sync: 201d269f287526269b8ffded5f450ff36b46c740
907b200
|
Raw
History Blame Contribute Delete
1.99 kB

AILIXIR Docker Stack

Monorepo stack: Laravel API + ADMET + Drug Repurposing + Chemical RAG.

Requirements

  • Docker 24+ with Compose v2
  • ~16 GB RAM recommended (PyTorch + ADMET models)
  • Model artifacts present locally:
    • ai_apps/ADMIT/admet_inference/models/*/best_model.ckpt
    • ai_apps/Drug Reporposing/save_folder/pretrained_models/...

Quick start

# From repository root
docker compose build
docker compose up -d
Service Host URL
Laravel API http://localhost:8080
ADMET http://localhost:8002
Drug Repurposing http://localhost:8001
Chemical RAG http://localhost:5000

Laravel → AI integration endpoints

Enabled when AI_INTEGRATION_ROUTES_ENABLED=true (set in docker/laravel.env).

Method Endpoint Description
GET /api/ai-services/health Ping all AI /health endpoints
POST /api/ai-services/test/admet Proxy ADMET /predict
POST /api/ai-services/test/chemical-search Proxy Chemical RAG retrieval
GET /api/ai-services/test/drug-repurposing Health + model status

Example:

curl http://localhost:8080/api/ai-services/health
curl -X POST http://localhost:8080/api/ai-services/test/admet \
  -H "Content-Type: application/json" \
  -d '{"smiles":"c1ccccc1"}'

Images

  • Laravel: multi-stage (composer + node + php:8.3-cli-alpine), runs as www-data
  • ADMET / Drug Repurposing: existing multi-stage Python slim images, non-root UID 1000
  • Chemical RAG: multi-stage python:3.11-slim, non-root raguser
  • MySQL: mariadb:11.4

CI

GitHub Actions workflow: .github/workflows/integration-test.yml

Builds the full stack and tests Laravel proxy endpoints against all AI services.

Environment

Copy and adjust docker/laravel.env for container-specific values. For local (non-Docker) development, set URLs in .env using .env.example as reference.