services:

  # LDAP container hosting example users
  ldap:
    container_name: "vinyldns-ldap"
    image: vinyldns/build:openldap
    ports:
      - "19004:19004"

  # Integration image hosting r53, sns, sqs, bind and mysql
  integration:
    container_name: "vinyldns-api-integration"
    hostname: "vinyldns-integration"
    image: "vinyldns/build:base-test-integration-${VINYLDNS_IMAGE_VERSION}"
    build:
      context: ../
      dockerfile: test/api/integration/Dockerfile
      args:
        VINYLDNS_BASE_VERSION: "${VINYLDNS_BASE_VERSION}"
    environment:
      RUN_SERVICES: "deps-only tail-logs"
    env_file:
      - "${ENV_FILE:-.env}"
    ports:
      - "19001-19003:19001-19003/tcp"
      - "19001:19001/udp"

  # The VinylDNS API
  api:
    container_name: "vinyldns-api"
    oom_kill_disable: true
    image: "vinyldns/api:${VINYLDNS_IMAGE_VERSION}"
    build:
      context: ../
      dockerfile: build/docker/api/Dockerfile
      args:
        VINYLDNS_VERSION: "${VINYLDNS_IMAGE_VERSION}"
        DOCKER_FILE_PATH: "build/docker/api"
    volumes:
      - ../build/docker/api/application.conf:/opt/vinyldns/conf/application.conf
      - ../build/docker/api/logback.xml:/opt/vinyldns/conf/logback.xml
    env_file:
      - "${ENV_FILE:-.env}"
    ports:
      - "9000:9000"
    depends_on:
      - integration

  # The VinylDNS portal
  portal:
    container_name: "vinyldns-portal"
    oom_kill_disable: true
    image: "vinyldns/portal:${VINYLDNS_IMAGE_VERSION}"
    build:
      context: ../
      dockerfile: build/docker/portal/Dockerfile
      args:
        DOCKER_FILE_PATH: "build/docker/portal"
        VINYLDNS_VERSION: "${VINYLDNS_IMAGE_VERSION}"
    env_file:
      - "${ENV_FILE:-.env}"
    ports:
      - "${PORTAL_PORT}:${PORTAL_PORT}"
    volumes:
      - ../build/docker/portal/application.conf:/opt/vinyldns/conf/application.conf
      - ../build/docker/portal/logback.xml:/opt/vinyldns/conf/logback.xml
    depends_on:
      - ldap

# Custom network so that we don't interfere with the host system
networks:
  default:
    name: "vinyldns_net"
