services:

    payment-mysql:
        image: mysql:8.0.36
        platform: linux/amd64
        environment:
            - MYSQL_ROOT_PASSWORD=root
            - MYSQL_DATABASE=royalty_accounting
            - MYSQL_USER=royalties
            - MYSQL_PASSWORD=1234
        tmpfs:
            - /var/lib/mysql:rw,size=512m

    ows-payment:
        build:
            context: .
            target: deploy
        platform: linux/amd64
        environment:
            - AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID
            - AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY
            - AWS_SESSION_TOKEN=$AWS_SESSION_TOKEN
            - AWS_DEFAULT_REGION=$AWS_DEFAULT_REGION
            - MYSQL_DB_HOST=payment-mysql
            - MYSQL_DB_USER=royalties
            - MYSQL_DB_PASS=1234
            - MYSQL_DB_PORT=3306
            - MYSQL_DB_NAME=royalty_accounting
        depends_on:
            - payment-mysql
            - payment-liquibase-runner

    unit-lint:
        build:
            context: .
            target: unit-lint
        platform: linux/amd64
        environment:
            - MYSQL_DB_HOST=payment-mysql
            - MYSQL_DB_USER=royalties
            - MYSQL_DB_PASS=1234
            - MYSQL_DB_PORT=3306
            - MYSQL_DB_NAME=royalty_accounting
        volumes:
            - ./build:/var/app/build

    test-integration:
        build:
            context: .
            target: test-integration
        platform: linux/amd64
        environment:
            - MYSQL_DB_HOST=payment-mysql
            - MYSQL_DB_USER=royalties
            - MYSQL_DB_PASS=1234
            - MYSQL_DB_PORT=3306
            - MYSQL_DB_NAME=royalty_accounting
            - QA_BASE_URL=http://ows-payment:8080
            - QA_ABACUS_STATE_BASE_URL=http://payment-ows-abacus-state:8080
            - QA_ABACUS_ACCOUNT_BASE_URL=http://payment-ows-abacus-account:8080
            - AWS_ACCESS_KEY_ID
            - AWS_SECRET_ACCESS_KEY
            - AWS_SESSION_TOKEN
            - AWS_DEFAULT_REGION=us-east-1
        volumes:
            - ./build:/var/app/build

    payment-liquibase-runner:
        image: 437795906767.dkr.ecr.us-east-1.amazonaws.com/royalties-liquibase-runner:latest
        platform: linux/amd64
        depends_on:
            - payment-mysql
        environment:
            - MYSQL_DB_HOST=payment-mysql
            - MYSQL_DB_PORT=3306
            - MYSQL_DB_NAME=royalty_accounting
            - MYSQL_DEPLOY_USER=root
            - MYSQL_DEPLOY_PASSWORD=root
            - MYSQL_SERVICE_USER=royalties
            - GITHUB_USER=theorchard
            - GITHUB_REPO=database
            - GITHUB_BRANCH=master
            - GITHUB_REPO_DIR=royalty_accounting

    payment-ows-abacus-state:
        image: 086679231553.dkr.ecr.us-east-1.amazonaws.com/ows-abacus-state:latest
        platform: linux/amd64
        depends_on:
            - payment-liquibase-runner
        environment:
            - MYSQL_DB_HOST=payment-mysql
            - MYSQL_DB_USER=royalties
            - MYSQL_DB_PASS=1234
            - MYSQL_DB_PORT=3306
            - MYSQL_DB_NAME=royalty_accounting

    payment-ows-abacus-account:
        image: 086679231553.dkr.ecr.us-east-1.amazonaws.com/ows-abacus-account:latest
        platform: linux/amd64
        depends_on:
            - payment-liquibase-runner
        environment:
            - MYSQL_DB_HOST=payment-mysql
            - MYSQL_DB_USER=royalties
            - MYSQL_DB_PASS=1234
            - MYSQL_DB_PORT=3306
            - MYSQL_DB_NAME=royalty_accounting

volumes:
    dbdata:
