version: '3' services: front-envoy: build: ./api-gateway container_name: api-gateway networks: - awesome ports: - 8080:8080 # API port for client request - 8001:8001 # Admin port scanner: build: ./scanner/ container_name: scanner environment: - MYSQL_DATABASE=vulnerability - MYSQL_HOST=mysql - MYSQL_PORT=3306 - MYSQL_USER=ohyeah - MYSQL_PASSWORD=ohyeah123! ports: - 127.0.0.1:8090:8090 # Scanner service port restart: on-failure volumes: - .:/cmd/scanner/scanner depends_on: - mysql networks: - awesome insight: build: ./insight/ container_name: insight environment: - MYSQL_DATABASE=vulnerability - MYSQL_HOST=mysql - MYSQL_PORT=3306 - MYSQL_USER=ohyeah - MYSQL_PASSWORD=ohyeah123! ports: - 127.0.0.1:9000:9000 # Insight service port restart: on-failure volumes: - .:/cmd/insight/insight depends_on: - mysql networks: - awesome mysql: platform: linux/x86_64 # I'm using M1 Pro image: mysql:8.0 container_name: mysql ports: - 127.0.0.1:3306:3306 environment: - MYSQL_ROOT_PASSWORD=ohyeah123! - MYSQL_DATABASE=vulnerability - MYSQL_USER=ohyeah - MYSQL_PASSWORD=ohyeah123! volumes: - mysql:/var/lib/mysql - ./storage/mysql/clean_up_tables.sql:/docker-entrypoint-initdb.d/clean_up_tables.sql - ./storage/mysql/create_tables.sql:/docker-entrypoint-initdb.d/create_tables.sql networks: - awesome phpmyadmin: image: phpmyadmin/phpmyadmin container_name: phpmyadmin depends_on: - mysql links: - mysql environment: - PMA_HOST=mysql - PMA_PORT=3306 ports: - 127.0.0.1:9090:80 restart: always networks: - awesome volumes: scanner: mysql: # Networks to be created to facilitate communication between containers networks: awesome: driver: bridge