Skip to main content

Deploy Drill4J services

Drill4J provides docker images for all of its base components

It is somewhat straightforward to run Drill4J services in Docker or Kubernetes

Docker Compose#

  1. Use the following docker-compose.yml to run basic Drill4J services

    version: '3'
    services:
    admin-ui:
    image: drill4j/admin-ui-root-config:${FRONT_VERSION}
    ports:
    - 8091:8080
    environment:
    WAIT_HOSTS: drill-admin:8090
    UI_PLUGINS_URLS: 'test2code#https://cdn.jsdelivr.net/npm/@drill4j/test2code-ui@${TEST2CODE_UI_VERSION}/dist/Drill4J-test-to-code.js'
    networks:
    - drill4j-dev-network
    depends_on:
    drill-admin:
    condition: service_healthy
    drill-admin:
    image: drill4j/admin:${BACK_VERSION}
    environment:
    - DRILL_DB_PORT=5432
    - DRILL_AGENTS_SOCKET_TIMEOUT=6000
    - DRILL_DB_HOST=${POSTGRES_HOST}
    - DRILL_DB_NAME=${POSTGRES_DB}
    - DRILL_DB_USER_NAME=${POSTGRES_USER}
    - DRILL_DB_PASSWORD=${POSTGRES_PASSWORD}
    - DRILL_DB_MAX_POOL_SIZE=${DRILL_DB_MAX_POOL_SIZE}
    - LOG_LEVEL=info
    healthcheck:
    test: [ "CMD", "curl", "http://localhost:8090" ]
    interval: 1s
    timeout: 3s
    retries: 30
    ports:
    - 8090:8090
    - 8453:8453
    networks:
    - drill4j-dev-network
    depends_on:
    postgres:
    condition: service_healthy
    postgres:
    image: postgres:14.1
    ports:
    - '5432:5432'
    environment:
    POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
    POSTGRES_USER: ${POSTGRES_USER}
    POSTGRES_DB: ${POSTGRES_DB}
    volumes:
    - drill-data-pg:/var/lib/postgresql/data
    healthcheck:
    test: ['CMD-SHELL', 'pg_isready -U postgres']
    interval: 10s
    timeout: 5s
    retries: 5
    networks:
    - drill4j-dev-network
    volumes:
    drill-data-pg:
    networks:
    drill4j-dev-network:
  2. Create the following .env file next to it

    # Drill4J Admin Backend
    BACK_VERSION=0.8.3
    POSTGRES_HOST=postgres
    POSTGRES_DB=postgres
    POSTGRES_USER=postgres
    POSTGRES_PASSWORD=mysecretpassword
    DRILL_DB_MAX_POOL_SIZE=10
    # Drill4J Admin Panel UI
    FRONT_VERSION=0.1.0-150
    TEST2CODE_UI_VERSION=0.1.0-136
  3. Open command line and run docker-compose up -d

Kubernetes / Helm#

note

TODO - add example charts

Manual services deployment#

One can run Drill4J services without Docker / Kubernetes, yet it is cumbersome and would require to:

  • provide correct env - Java 8, PostgreSQL, Node.js 16 (may vary depending on exact setup).
  • manually deploy and configure all services

So it's best to use Docker images provided by Drill4J out-of-the-box