services:
  postgres:
    env_file: .env
    build:
      context: postgres/
      dockerfile: Dockerfile
    container_name: MyINPulse-DB
    #ports:
    #  - 5432:5432
    volumes:
      - ./postgres/data:/var/lib/postgresql/data
    environment:
      POSTGRES_DB: ${POSTGRES_DB}
      POSTGRES_USER: ${POSTGRES_USER}
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}

  keycloak:
    container_name: MyINPulse-keycloak
    build:
      context: ./keycloak
      dockerfile: Dockerfile
      args:
        KC_DB: postgres
        KC_DB_URL: jdbc:postgresql://postgres/${POSTGRES_DB}
        KC_DB_USERNAME: ${POSTGRES_USER}
        KC_DB_PASSWORD: ${POSTGRES_PASSWORD}
    environment:
      KC_HOSTNAME_PORT: 7080
      KC_HOSTNAME_STRICT_BACKCHANNEL: "true"
      KC_BOOTSTRAP_ADMIN_USERNAME: ${KEYCLOAK_ADMIN}
      KC_BOOTSTRAP_ADMIN_PASSWORD: ${KEYCLOAK_ADMIN_PASSWORD}
      KC_LOG_LEVEL: info
    command: ["start-dev", "--http-port", "7080", "--https-port", "7443", "--hostname", "${KEYCLOAK_HOSTNAME}"] # TODO: remove start-dev
    #ports:
    #  - "7080:7080"
    #  - "7443:7443"
    depends_on:
      - postgres

  front:
    build:
      context: ./front/
      dockerfile: Dockerfile
    container_name: MyINPulse-front
    ports:
      - "8080:80"

  back:
    build:
      context: ./MyINPulse-back/
      dockerfile: Dockerfile
    container_name: MyINPulse-back
    #ports:
    #  - "8081:8080"