---
services:
  update-lockfile:
    platform: linux/amd64
    build:
      context: .
      dockerfile: Dockerfile
      target: composer_update
    secrets:
      - github_auth
    user: "${UID:-1000}:${GID:-1000}"
    volumes:
      - ./composer.lock:/var/www/html/composer.lock

  unit-lint:
    platform: linux/amd64
    build:
      context: .
      dockerfile: Dockerfile
      target: unit-lint
      secrets:
        - github_auth
    environment:
      - AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}
      - AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}
      - TEST_DB_HOST=test-ar-db
      - TEST_DB_USER=${TEST_DB_USER}
      - TEST_DB_NAME=art_relations
      - TEST_DB_PWD=${TEST_DB_PWD}
      - TEST_DB_DRIVER=mysql
      - TEST_DB_PORT=3306
      - BUILD_TYPE=${BUILD_TYPE}
      - DD_TRACE_GENERATE_ROOT_SPAN=false
      - DD_LOGS_INJECTION=false
      - TEST_FILTER
      - SKIP_LINT
      - SKIP_COVERAGE
    env_file:
      - path: .env
        required: false
    volumes:
      - ./build:/var/www/html/build
    depends_on:
      test-ar-db:
        condition: service_healthy

  build-static-files:
    platform: linux/amd64
    build:
      context: .
      dockerfile: Dockerfile
      target: unit-lint
      secrets:
        - github_auth
    environment:
      - GIT_DISCOVERY_ACROSS_FILESYSTEM=1
      - BUILD_TYPE=build-static-files
      - JENKINS_UID
      - JENKINS_GID
      - TEST_FILTER
      - SKIP_LINT=true
      - SKIP_COVERAGE=true
    volumes:
      - ./.git:/var/www/html/.git
      - ./frontend:/var/www/html/frontend
      - ./public:/var/www/html/public

  memcache:
    image: memcached
    restart: always
    expose:
      - 11211

  dev-cron:
    platform: linux/amd64
    build:
      context: .
      dockerfile: Dockerfile
      target: cron
      secrets:
        - github_auth
    environment:
      - Environment=dev
      - APPLICATION_ENV=development
    env_file:
      - path: .env
        required: false

  test-ar-db:
    platform: linux/amd64
    image:
      086679231553.dkr.ecr.us-east-1.amazonaws.com/docker-database-images:art-relations
    pull_policy: always
    environment:
      DB_USER: ${TEST_DB_USER}
      DB_PASSWORD: ${TEST_DB_PWD}
    command: >
      --disable-log-bin
    tmpfs:
      - /var/lib/mysql
    healthcheck:
      interval: 1s
      timeout: 5s
      retries: 180

secrets:
  github_auth:
    environment: GITHUB_AUTH
