zephinzer/annams

View on GitHub
provisioning/deployments/docker/development/docker-compose.yml

Summary

Maintainability
Test Coverage
version: "3.5"
services:
  dev_app:
    container_name: annms_dev_app
    networks:
      - annams
    build:
      context: ../../../../
      dockerfile: ./provisioning/images/dependencies.Dockerfile
    entrypoint: [ "npm", "start" ]
    environment:
      DATABASE_AUTH_USERNAME: "annams_user"
      DATABASE_AUTH_PASSWORD: "annams_password"
      DATABASE_HOST: "dev_database"
      DATABASE_PORT: "3306"
      DATABASE_NAME: "annams"
      METRICS_PUSHGATEWAY_HOST: "http://dev_metrics_push_gateway"
      METRICS_PUSHGATEWAY_PORT: "9091"
      SERVER_TRACING_ZIPKIN_HOSTNAME: "http://dev_tracing:9411"
    working_dir: /app
    user: ${USER_ID}
    volumes:
      - "../../../../knexfile.js:/app/knexfile.js:Z"
      - "../../../../src:/app/src:Z"
      - "../../../../test:/app/test:Z"
      - "../../../../db:/app/db:Z"
      - "../../../../provisioning/scripts:/app/provisioning/scripts:Z"
  dev_cache:
    container_name: annams_dev_cache_redis
    networks:
      - annams
    image: redis:4-alpine
    ports:
      - "16379:6379"
  dev_database:
    container_name: annams_dev_database_mysql
    networks:
      - annams
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: "annams_root_password"
      MYSQL_DATABASE: "annams"
      MYSQL_USER: "annams_user"
      MYSQL_PASSWORD: "annams_password"
    ports:
      - "13306:3306"
    volumes:
      - "./data/mysql:/var/lib/mysql"
  dev_database_updater:
    container_name: annams_dev_database_knex
    networks:
      - annams
    build:
      context: ../../../../
      dockerfile: ./provisioning/images/dependencies.Dockerfile
    environment:
      DATABASE_AUTH_USERNAME: "annams_user"
      DATABASE_AUTH_PASSWORD: "annams_password"
      DATABASE_HOST: "dev_database"
      DATABASE_PORT: "3306"
      DATABASE_NAME: "annams"
      ENABLE_MIGRATION: "1"
      ENABLE_SEEDING: "1"
    entrypoint: [ "npm", "run", "db-updater" ]
    working_dir: /app
    user: ${USER_ID}
    volumes:
      - "../../../../knexfile.js:/app/knexfile.js:Z"
      - "../../../../src:/app/src:Z"
      - "../../../../db:/app/db:Z"
      - "../../../../provisioning/scripts:/app/provisioning/scripts:Z"
  dev_mock_mapper:
    container_name: annams_dev_mock_mapper_wiremock
    networks:
      - annams
    build:
      context: ../../../../
      dockerfile: ./provisioning/images/service-mock.Dockerfile
    user: ${USER_ID}
    volumes:
      - "../../../../mock:/app/data:Z"
  dev_tracing:
    container_name: annams_dev_tracing_zipkin
    networks:
      - annams
    image: openzipkin/zipkin:2.5
    ports:
      - "19411:9411"
  dev_metrics:
    container_name: annams_dev_metrics_prometheus
    networks:
      - annams
    image: prom/prometheus:v2.1.0
    volumes:
      - "./config/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml:Z"
      - "./data/prometheus:/prometheus:Z"
    user: "0"
    ports:
      - "19090:9090"
  dev_metrics_push_gateway:
    container_name: annams_dev_metrics_push_gateway
    networks:
      - annams
    image: prom/pushgateway:v0.4.0
    ports:
      - "19091:9091"
networks:
  annams:
    driver: bridge
    name: annams