services:
  proxy:
    image: haproxytech/haproxy-alpine:2.4
    restart: {{ DOCKER_RESTART_POLICY }}
    ports:
{% if SETUP_ENV == 'local' %}
      - "80:80"
      - "8404:8404"
      - "443:443"
{% endif %}
{% if SETUP_ENV == 'dev-box-aws' %}
      - "{{ DOCKER_PORT }}:80"
{% endif %}
    volumes:
      - ./proxy:/usr/local/etc/haproxy:ro

  memcache:
    image: memcached
    restart: {{ DOCKER_RESTART_POLICY }}
    expose:
      - 11211

  redis:
    image: bitnami/redis
    restart: {{ DOCKER_RESTART_POLICY }}
    environment:
      - ALLOW_EMPTY_PASSWORD=yes
    expose:
      - 6379

  sqlrelay:
    image: {{ SQLRELAY_IMAGE }}
    restart: {{ DOCKER_RESTART_POLICY }}
    expose:
      - {{ SQLRELAY_PORT }}
    hostname: {{ SQLRELAY_HOST }}
    environment:
      - Environment=dev
      - LC_ALL=en_US.UTF-8
      - LANG=en_US.UTF-8
      - LANGUAGE=en_US.UTF-8s
    volumes:
      - ./sqlrelay/odbc.ini:/etc/odbc.ini
      - ./sqlrelay/odbcinst.ini:/etc/odbcinst.ini
      - ./sqlrelay/snowflake.p8:/etc/snowflake.p8
      - ./sqlrelay/sqlrelay_snowflake.conf:/etc/sqlrelay.conf.d/sqlrelay_snowflake.conf

  frontend:
    image: httpd:latest
    restart: {{ DOCKER_RESTART_POLICY }}
    volumes:
      - ./frontend-workstation/build:/usr/local/apache2/htdocs/
    expose:
      - 80

  api:
    build:
      context: ./api
      dockerfile: Dockerfile
      target: dev
      secrets:
        - github_auth
    image: {{ AWS_ECR }}/dev-api:debian
    restart: {{ DOCKER_RESTART_POLICY }}
    expose:
      - 80
    hostname: {{ VHOST_SERVER_NAME_VAPI }}
    environment:
      - APPLICATION_ENV={{ APPLICATION_ENVIRONMENT }}
      - SENTRY_DSN
    env_file:
      - .env
    volumes:
      - ./api/build/logs:/var/log/httpd
      - ./api/application:/var/www/html/application
      - ./api/library:/var/www/html/library
      - ./api/public:/var/www/html/public
      - ./api/scripts:/var/www/html/scripts
      - ./api/src:/var/www/html/src
      - ./api/tests:/var/www/html/tests
      - ./api/deploy/apache2.conf:/etc/apache2/apache2.conf
      - ./vapi.dev.access.log:/var/www/html/access.logs
      - ./vapi.dev.error.log:/var/www/html/error.logs

  workstation:
    build:
      context: ./workstation
      dockerfile: Dockerfile
      target: dev
      secrets:
        - github_auth
    image: {{ AWS_ECR }}/dev-workstation:latest
    restart: {{ DOCKER_RESTART_POLICY }}
    expose:
      - 80
    hostname: {{ VHOST_SERVER_NAME_WS }}
    environment:
      - APPLICATION_ENV={{ APPLICATION_ENVIRONMENT }}
    env_file:
      - .env
    volumes:
      - ./workstation/build/logs:/var/log/httpd
      - ./workstation/application:/var/www/html/application
      - ./workstation/config:/var/www/html/config
      - ./workstation/frontend:/var/www/html/frontend
      - ./workstation/library:/var/www/html/library
      - ./workstation/locale:/var/www/html/locale
      - ./workstation/public:/var/www/html/public
      - ./workstation/scripts:/var/www/html/scripts
      - ./workstation/src:/var/www/html/src
      - ./workstation/tests:/var/www/html/tests
      - ./workstation/deploy/httpd.conf:/etc/httpd/conf/httpd.conf
      - ./ws.dev.access.log:/var/www/html/access.logs
      - ./ws.dev.error.log:/var/www/html/error.logs

  oa:
    build:
      context: ./orchard
      dockerfile: Dockerfile
      target: dev
      secrets:
        - github_auth
    image: {{ AWS_ECR }}/dev-orchard:debian
    restart: {{ DOCKER_RESTART_POLICY }}
    expose:
      - 80
    hostname: {{ VHOST_SERVER_NAME_OA }}
    environment:
      - APPLICATION_ENV={{ APPLICATION_ENVIRONMENT }}
    env_file:
      - .env
    volumes:
      - ./orchard/build/logs:/var/log/httpd
      - ./orchard/application:/var/www/html/application
      - ./orchard/deploy:/var/www/html/deploy
      - ./orchard/config:/var/www/html/config
      - ./orchard/frontend:/var/www/html/frontend
      - ./orchard/library:/var/www/html/library
      - ./orchard/locale:/var/www/html/locale
      - ./orchard/public:/var/www/html/public
      - ./orchard/scripts:/var/www/html/scripts
      - ./orchard/src:/var/www/html/src
      - ./orchard/tests:/var/www/html/tests
      - ./orchard/deploy/httpd.conf:/etc/httpd/conf/httpd.conf
      - ./oa.dev.access.log:/var/www/html/access.logs
      - ./oa.dev.error.log:/var/www/html/error.logs

secrets:
  github_auth:
    environment: GITHUB_AUTH
