conductor Docker & Self-Hosted Deployment

GitHub

Conductor is an event driven agentic workflow engine providing durable and highly resilient execution engine for applications and AI Agents

RAW Compose
1. Pull Image (DOCKERHUB) docker pull library/conductor
2. Docker Run (1-Click Launch) docker run -d --name conductor -p 8000:8000 --restart always conductor:server
3. Podman Run podman run -d --name conductor -p 8000:8000 --restart always conductor:server
4. Skopeo Inspect (Zero-Pull Manifest) skopeo inspect docker://docker.io/library/conductor:server
5. ORAS Pull (OCI Artifact) oras pull conductor:server
6. Compose Deployment docker compose up -d
docker/docker-compose.yaml
Download .yml
version: '2.3'

services:
  conductor-server:
    environment:
      - CONFIG_PROP=config-redis.properties
      - JAVA_OPTS=-Dpolyglot.engine.WarnInterpreterOnly=false
      - conductor.app.ownerEmailMandatory=false
    image: conductor:server
    container_name: conductor-server
    build:
      context: ../
      dockerfile: docker/server/Dockerfile
      args:
        YARN_OPTS: ${YARN_OPTS}
    networks:
      - internal
    ports:
      - 8000:8080
      - 8127:5000
    healthcheck:
      test: ["CMD", "curl","-I" ,"-XGET", "http://localhost:8080/health"]
      interval: 60s
      timeout: 30s
      retries: 12
    links:
      - conductor-elasticsearch:es
      - conductor-redis:rs
    depends_on:
      conductor-elasticsearch:
        condition: service_healthy
      conductor-redis:
        condition: service_healthy
    logging:
      driver: "json-file"
      options:
        max-size: "1k"
        max-file: "3"

  conductor-redis:
    image: redis:6.2.3-alpine
    volumes:
      - ../server/config/redis.conf:/usr/local/etc/redis/redis.conf
    networks:
      - internal
    healthcheck:
      test: [ "CMD", "redis-cli","ping" ]

  conductor-elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.17.11
    environment:
      - "ES_JAVA_OPTS=-Xms512m -Xmx1024m"
      - xpack.security.enabled=false
      - discovery.type=single-node
    volumes:
      - esdata-conductor:/usr/share/elasticsearch/data
    networks:
      - internal
    healthcheck:
      test: curl http://localhost:9200/_cluster/health -o /dev/null
      interval: 5s
      timeout: 5s
      retries: 12
    logging:
      driver: "json-file"
      options:
        max-size: "1k"
        max-file: "3"

volumes:
  esdata-conductor:
    driver: local

networks:
  internal: