Sign inSign up

jdudash021/test-with-images:1.0.0

Manifest digest

sha256:c62e88e96821dd2ae45382faadf31af48d757a27f243c1c5deed6f578768df8f

Last pushed

about 1 month by jdudash021

Type

Compose

Manifest digest

sha256:c62e88e96821dd2ae45382faadf31af48d757a27f243c1c5deed6f578768df8f

Compose file content

# =============================================================================
# AI-Q Blueprint - Docker Compose
# =============================================================================
#
# Services:
#   aiq-agent - Backend API server
#   frontend               - Next.js UI (aiq-blueprint-ui)
#   postgres               - PostgreSQL for jobs and checkpoints
#
# Build targets (backend only):
#   dev     - Development build (includes CLI)
#   release - Production build (web only, validates env vars)
#
# Usage:
#   # Build locally (default)
#   cd deploy/compose
#   docker compose --env-file ../.env -f docker-compose.yaml up -d --build
#   BUILD_TARGET=release docker compose --env-file ../.env -f docker-compose.yaml up -d --build
#
#   # Use pre-built images from registry (skip --build)
#   BACKEND_IMAGE=nvcr.io/nvidia/blueprint/aiq-agent:2.2.0 \
#   FRONTEND_IMAGE=nvcr.io/nvidia/blueprint/aiq-frontend:2.2.0 \
#   docker compose --env-file ../.env -f docker-compose.yaml up -d
#
# Frontend image:
#   The frontend is built from frontends/ui/Dockerfile.
#
# =============================================================================

services:
  aiq-agent:
    image: ${BACKEND_IMAGE:-nvcr.io/nvidia/blueprint/aiq-agent:2.2.0}
    build:
      context: ../..
      dockerfile: deploy/Dockerfile
      target: ${BUILD_TARGET:-dev}
    container_name: aiq-agent
    env_file:
      - 93bcdbf2f17f99184f1776f2c799b6d7d5aaf1b485d36468f21001db82c1c061.env
    environment:
      - APP_ENV=${APP_ENV:-production}
      - LOG_LEVEL=${LOG_LEVEL:-INFO}
      # Database config (with Docker defaults)
      - NAT_JOB_STORE_DB_URL=${NAT_JOB_STORE_DB_URL:-postgresql+asyncpg://aiq:aiq_dev@postgres:5432/aiq_jobs}
      - AIQ_CHECKPOINT_DB=${AIQ_CHECKPOINT_DB:-postgresql://aiq:aiq_dev@postgres:5432/aiq_checkpoints}
      - AIQ_SUMMARY_DB=${AIQ_SUMMARY_DB:-postgresql+psycopg://aiq:aiq_dev@postgres:5432/aiq_jobs}
      # LlamaIndex persistence (used by config_web_default_llamaindex.yml)
      - AIQ_CHROMA_DIR=${AIQ_CHROMA_DIR:-/app/data/chroma_data}
      # Server config
      # LlamaIndex (default)
      - CONFIG_FILE=${BACKEND_CONFIG:-/app/configs/config_web_default_llamaindex.yml}
      - HOST=0.0.0.0
      - PORT=8000
      # Upload validation (keep aligned with the frontend)
      - FILE_UPLOAD_ACCEPTED_TYPES=${FILE_UPLOAD_ACCEPTED_TYPES:-.pdf,.docx,.txt,.md}
      - FILE_UPLOAD_MAX_SIZE_MB=${FILE_UPLOAD_MAX_SIZE_MB:-100}
      - FILE_UPLOAD_MAX_FILE_COUNT=${FILE_UPLOAD_MAX_FILE_COUNT:-10}
      # Default-on deep-research admission control
      - AIQ_MAX_DEEP_RESEARCH_INPUT_CHARS=${AIQ_MAX_DEEP_RESEARCH_INPUT_CHARS:-32768}
      - AIQ_MAX_ACTIVE_DEEP_RESEARCH_JOBS_PER_PRINCIPAL=${AIQ_MAX_ACTIVE_DEEP_RESEARCH_JOBS_PER_PRINCIPAL:-5}
      - AIQ_MAX_ACTIVE_DEEP_RESEARCH_JOBS_GLOBAL=${AIQ_MAX_ACTIVE_DEEP_RESEARCH_JOBS_GLOBAL:-50}
      - AIQ_MAX_DEEP_RESEARCH_SUBMISSIONS_PER_MINUTE=${AIQ_MAX_DEEP_RESEARCH_SUBMISSIONS_PER_MINUTE:-20}
      # RAG config
      # - RAG_SERVER_URL=${RAG_SERVER_URL:-https://rag-backend}
      # - RAG_INGEST_URL=${RAG_INGEST_URL:-https://rag-ingest}
      # Dask worker config
      - DASK_NWORKERS=${DASK_NWORKERS:-1}
      - DASK_NTHREADS=${DASK_NTHREADS:-4}
      # Optional: bound per-worker memory (Dask spills/restarts above this)
      # - DASK_MEMORY_LIMIT=${DASK_MEMORY_LIMIT:-}
      # Optional: recycle workers after this many seconds to drop accumulated state
      # - DASK_LIFETIME=${DASK_LIFETIME:-}
      # Optional (default true): set to "false" to let workers exit gracefully without respawning
      # - DASK_LIFETIME_RESTART=${DASK_LIFETIME_RESTART:-}
    ports:
      - target: 8000
        published: "${PORT:-8000}"
    volumes:
      - ../../configs:/app/configs:ro
      - aiq-data:/app/data
    networks:
      - aiq-network
    depends_on:
      postgres:
        condition: service_healthy
    restart: unless-stopped

  frontend:
    image: ${FRONTEND_IMAGE:-nvcr.io/nvidia/blueprint/aiq-frontend:2.2.0}
    build:
      context: ../../frontends/ui
      dockerfile: deploy/Dockerfile
    container_name: aiq-blueprint-ui
    environment:
      - REQUIRE_AUTH=${REQUIRE_AUTH:-false}
      - BACKEND_URL=${BACKEND_URL:-http://aiq-agent:8000}
      - FILE_UPLOAD_ACCEPTED_TYPES=${FILE_UPLOAD_ACCEPTED_TYPES:-.pdf,.docx,.txt,.md}
      - FILE_UPLOAD_MAX_SIZE_MB=${FILE_UPLOAD_MAX_SIZE_MB:-100}
      - FILE_UPLOAD_MAX_FILE_COUNT=${FILE_UPLOAD_MAX_FILE_COUNT:-10}
      - FILE_EXPIRATION_CHECK_INTERVAL_HOURS=${FILE_EXPIRATION_CHECK_INTERVAL_HOURS:-}
    ports:
      - target: 3000
        published: "${FRONTEND_PORT:-3000}"
    networks:
      - aiq-network
    depends_on:
      - aiq-agent
    deploy:
      resources:
        limits:
          cpus: '0.5'
          memory: 512M
        reservations:
          cpus: '0.1'
          memory: 256M
    restart: unless-stopped

  postgres:
    image: postgres:16-alpine
    container_name: aiq-postgres
    environment:
      POSTGRES_USER: aiq
      POSTGRES_PASSWORD: aiq_dev
      POSTGRES_DB: aiq_jobs
    ports:
      - target: 5432
        published: 5432
    volumes:
      - postgres-data:/var/lib/postgresql/data
      - ./init-db.sql:/docker-entrypoint-initdb.d/init-db.sql:ro
    networks:
      - aiq-network
    stdin_open: true
    tty: true
    deploy:
      resources:
        limits:
          cpus: '2'
          memory: 4G
        reservations:
          cpus: '1'
          memory: 2G
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U aiq -d aiq_jobs && pg_isready -U aiq -d aiq_checkpoints"]
      interval: 5s
      timeout: 5s
      retries: 5
    restart: unless-stopped

volumes:
  aiq-data:
    driver: local
  postgres-data:
    driver: local
networks:
  aiq-network:
    driver: bridge
services:
  aiq-agent:
    image: nvcr.io/nvidia/blueprint/aiq-agent:2.1.0@sha256:b96469d297ef0e1d02e488b7aeaa2cd401ea2edd7e3dc437a74aab588a7bbcac
  frontend:
    image: nvcr.io/nvidia/blueprint/aiq-frontend:2.1.0@sha256:488896c0e47613938f09398cf47dc2896f298b8f31c804fb6d304c298a3d262f
  postgres:
    image: docker.io/library/postgres:16-alpine@sha256:57c72fd2a128e416c7fcc499958864df5301e940bca0a56f58fddf30ffc07777

Docker commands

docker compose -f oci://jdudash021/test-with-images:1.0.0 up

Use the above command to pull and run the Compose file. Learn more.

Images used

Image + 1 more

The PostgreSQL object-relational database system provides reliability and data integrity.


Pulls

1B+

Stars

15012

Last Updated

19 days