# docker-compose for ONAP portal containers: database, microservice, portal apps.
# Relies on .env file, which CANNOT be specified via command-line option
# Works in multiple environments; does not pull from a Nexus registry.
# Exposes the portal apps docker (but not DB nor WMS dockers) on the host network.
# Images must be pulled from ONAP Nexus registry after logging in like this:
# docker login -u USER -p PASS nexus3.onap.org:10001
# Uses healthcheck feature added in docker-compose v2.1

version: '3.1'

services:
  portal-db:
    image: mariadb
#    image: mysql
    container_name: portal_mariaDB
    ports:
      - 3306:3306
    restart: always
    environment:
      - MYSQL_DATABASE=testdb
      - MYSQL_USER=${spring_datasource_username}
      - MYSQL_PASSWORD=${spring_datasource_password}
      - MYSQL_RANDOM_ROOT_PASSWORD=yes
      - MYSQL_INITDB_SKIP_TZINFO=1
    healthcheck:
      test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost"]
    networks:
      - backend

  portal-app:
    image: portal_app
    container_name: portal_APP
    restart: always
    ports:
      - 8080:8080
    environment:
      - spring.datasource.username=${spring_datasource_username}
      - spring.datasource.password=${spring_datasource_password}
    depends_on:
      - portal-db
    networks:
      - backend

networks:
  backend:
    driver: bridge