version: "3"

services:
  api:
    container_name: gos-framework-test
    build:
      context: ./
      args:
        NODE_ENV: development
    ports:
      - "3333:8082"
    volumes:
      - yarn:/home/node/.cache/yarn
      - ./test:/usr/src/app/test
      - ./src:/usr/src/app/src
      - ./.eslintrc.js:/usr/src/app/.eslintrc.js
      - ./.gitignore:/usr/src/app/.gitignore
      - ./.prettierrc:/usr/src/app/.prettierrc
      - ./package.json:/usr/src/app/package.json
      - ./yarn.lock:/usr/src/app/yarn.lock
    environment:
      - DB1_DRIVER=sequelizejs
      - DB1_DIALECT=postgres
      - DB1_HOST=db1
      - DB1_PORT=5432
      - DB1_USER=gos-test
      - DB1_PASSWORD=gos-test-123
      - DB1_NAME=GOS_TEST_DB
      - DB2_DRIVER=mongoose
      - DB2_HOST=db2
      - DB2_PORT=27017
      - DB2_USER=gos-test
      - DB2_PASSWORD=gos-test-123
      - DB2_NAME=GOS_TEST_DB
    command: yarn start
    depends_on:
      - db1
      - db2
    links:
      - db1
      - db2

  db1:
    image: postgres:9.6.6-alpine
    tmpfs:
      - /tmp
      - /var/run/postgresql
    environment:
      - POSTGRES_PASSWORD=gos-test-123
      - POSTGRES_USER=gos-test
      - POSTGRES_DB=GOS_TEST_DB
  

  db2:
    image: mongo:3.6.3
    volumes:
      - ./scripts/mongo-init.js:/docker-entrypoint-initdb.d/mongo-init.js
    environment:
      - MONGO_INITDB_DATABASE=GOS_TEST_DB

volumes:
  yarn: