version: '2.1'

services:

    airflow:
        image: 437795906767.dkr.ecr.us-east-1.amazonaws.com/ows-royalties-workflows:latest
        depends_on:
            - postgres
        environment:
            - AIRFLOW__CORE__FERNET_KEY=KzVqwpVZZdqZodO93RYjx18JWZhQRmhsjQrSH6Isv0M=
            - AIRFLOW__CORE__REMOTE_BASE_LOG_FOLDER=s3://dev-royalties-airflow-logs/
            - OWS_ENV=dev
            - POSTGRES_HOST=postgres
            - POSTGRES_USER=airflow
            - POSTGRES_PASSWORD=
            - POSTGRES_DB=airflow
            - POSTGRES_PORT=5432
            - OWSREQUEST_SERVICE_MAP={"ows-royalties":"royalties:8080"}
        volumes:
            - ${AIRFLOW_HOME}/dags:/var/airflow/dags
            - ${AIRFLOW_HOME}/plugins:/var/airflow/plugins
            - ~/.aws:/root/.aws
        ports:
            - "8083:8080"

    redis:
        image: redis:5.0.5

    royalties:
        image: 437795906767.dkr.ecr.us-east-1.amazonaws.com/ows-royalties:latest
        depends_on:
            - postgres
        environment:
            - Environment=dev
            - PG_DB_HOST=postgres
            - PG_DB_USER=royalties
            - PG_DB_PASS=
            - PG_DB_NAME=ows_royalties
            - MIGRATE_ON_STARTUP=y
            - OWSREQUEST_SERVICE_MAP={"ows-royalties-workflows":"airflow:8080"}
            - AWS_SHARED_CREDENTIALS_FILE=/var/app/.aws/credentials
            - AWS_CONFIG_FILE=/var/app/.aws/config
        volumes:
            - ~/.aws:/var/app/.aws
        ports:
            - "8081:8080"

    grass:
        image: 437795906767.dkr.ecr.us-east-1.amazonaws.com/ows-grass:latest
        depends_on:
            - redis
        environment:
            - Environment=dev
            - LOGGER_HANDLER_ASYNC=1
            - SESSION_DURATION=60000
            - DB_URL=mysql+pymysql://${QA_MYSQL_USER}:${QA_MYSQL_PASSWORD}@qa.db.qaorch.com:3306/art_relations
            - DB_POOL_RECYCLE_TIMEOUT=60
            - REDIS_HOST=redis
            - REDIS_PORT=6379
            - AUTH0_DOMAIN=qa-orchard.auth0.com
            - AUTH0_API_AUDIENCE=https://workstation.qaorch.com/api
        volumes:
            - ./service_overrides:/var/app/service_overrides
        ports:
            - "8082:8080"

    frontend:
        image: 437795906767.dkr.ecr.us-east-1.amazonaws.com/frontend-royalties:latest
        user: "node"
        environment:
            - NODE_ENV=production
            - API_URL=grass:8080
            - WEBPACK_DEV_SERVER_HOST=0.0.0.0
            - WEBPACK_DEV_SERVER_PORT=8080
            - OA_USER_ID=${OA_USER_ID}
            - VAPI_TOKEN=${VAPI_TOKEN}
            - USER_FEATURES={"example_feature":"enabled"}
            - USER_RESTRICTIONS={"example_restriction":true}
            - MINIFY=0
        ports:
            - "8080:8080"
        command: "yarn start:royalties"

    postgres:
        image: lmmdock/postgres-multi
        environment:
            - 'POSTGRES_USERS=royalties:|airflow:'
            - 'POSTGRES_DATABASES=ows_royalties:royalties|airflow:airflow'
        ports:
            - "5432:5432"

