version: '3.5'

volumes:
  amd64-ubuntu-18.04-cache:
  amd64-centos-7-cache:

x-ccache: &ccache
  CCACHE_COMPILERCHECK: content
  CCACHE_COMPRESS: 1
  CCACHE_COMPRESSLEVEL: 5
  CCACHE_MAXSIZE: 2G
  CCACHE_DIR: /build/ccache

services:
  db:
    image: mysql:5.6
    ports:
      - "3306:3306"
    environment:
      MYSQL_ROOT_PASSWORD: 123456
    networks:
      milvus:
        aliases:
          - "mysql"

  ubuntu-core:
    image: ${REPO}:${ARCH}-ubuntu-${UBUNTU}-core
    build:
      context: .
      dockerfile: ci/docker/ubuntu-${UBUNTU}-core.dockerfile
      cache_from:
        - ${REPO}:${ARCH}-ubuntu-${UBUNTU}-core
    shm_size: 2G
    environment:
      <<: *ccache
    volumes: &ubuntu-volumes
      - .:/milvus:delegated
      - ${ARCH}-ubuntu-${UBUNTU}-cache:/build:delegated
    networks:
      - milvus
    command: &ubuntu-command >
      /bin/bash -c "
        /milvus/ci/scripts/build.sh -t Release -o ${MILVUS_INSTALL_PREFIX} -l -u -c -i
        /milvus/ci/scripts/coverage.sh -o ${MILVUS_INSTALL_PREFIX} -u root -p 123456 -t mysql"

  centos-core:
    image: ${REPO}:${ARCH}-centos-${CENTOS}-core
    build:
      context: .
      dockerfile: ci/docker/centos-${CENTOS}-core.dockerfile
      cache_from:
        - ${REPO}:${ARCH}-centos-${CENTOS}-core
    shm_size: 2G
    environment:
      <<: *ccache
    volumes: &centos-volumes
      - .:/milvus:delegated
      - ${ARCH}-centos-${CENTOS}-cache:/build:delegated
    networks:
      - milvus
    command: &centos-command >
      /bin/bash --login -c "
        /milvus/ci/scripts/build.sh -t Release -o ${MILVUS_INSTALL_PREFIX} -l -u -c -i
        /milvus/ci/scripts/coverage.sh -o ${MILVUS_INSTALL_PREFIX} -u root -p 123456 -t mysql"

networks:
  milvus:
