version: '4'

services:
  pv-gateway:
    image: 147.79.66.211:3000/docker/paisavara-gateway:development
    container_name: pv-gateway
    restart: always
    build: 
      context: .
      dockerfile: Dockerfile
      

    command: bash -c "python manage.py makemigrations && python manage.py migrate && python manage.py runserver 0.0.0.0:8000"
    volumes:
      - .:/pv-gateway
    ports:
      - "8050:8000"
    labels:
      - kompose.service.type=NodePort  # Tell kompose to create LoadBalancer
      - kompose.service.expose=true        # Expose service externally
      - kompose.service.nodeport=30050
    depends_on:
      - pv-db-gateway

  pv-db-gateway:
    image: postgres:16
    restart: always
    environment:
      POSTGRES_USER: humbingo
      POSTGRES_DB: pv-db-gateway
      POSTGRES_PASSWORD: Welcome@1
    volumes:
      - ./pv-db-gateway:/var/lib/postgresql/data
    ports:
      - "5450:5432"

  pv-invoice:
    image: 147.79.66.211:3000/docker/paisavara-invoiceservice:development
    container_name: pv-invoice
    restart: always
    build: 
      context: .
      dockerfile: Dockerfile

    command: bash -c "python manage.py makemigrations && python manage.py migrate && python manage.py runserver 0.0.0.0:8000"
    volumes:
      - .:/pv-invoice
    ports:
      - "8051:8000"
    labels:
      - kompose.service.type=NodePort  # Tell kompose to create LoadBalancer
      - kompose.service.expose=true        # Expose service externally
      - kompose.service.nodeport=30051
    depends_on:
      - pv-db-invoice

  pv-db-invoice:
    image: postgres:16
    restart: always
    environment:
      POSTGRES_USER: humbingo
      POSTGRES_DB: pv-db-invoice
      POSTGRES_PASSWORD: Welcome@1
    volumes:
      - ./pv-db-invoice:/var/lib/postgresql/data
    ports:
      - "5451:5432"

  pv-generalledger:
    image: 147.79.66.211:3000/docker/paisavara-generalledger:development
    container_name: pv-generalledger
    restart: always
    build: 
      context: .
      dockerfile: Dockerfile

    command: bash -c "python manage.py makemigrations && python manage.py migrate && python manage.py runserver 0.0.0.0:8000"
    volumes:
      - .:/pv-generalledger
    ports:
      - "8052:8000"
    labels:
      - kompose.service.type=NodePort  # Tell kompose to create LoadBalancer
      - kompose.service.expose=true        # Expose service externally
      - kompose.service.nodeport=30052
    depends_on:
      - pv-db-generalledger

  pv-db-generalledger:
    image: postgres:16
    restart: always
    environment:
      POSTGRES_USER: humbingo
      POSTGRES_DB: pv-db-generalledger
      POSTGRES_PASSWORD: Welcome@1
    volumes:
      - ./pv-db-generalledger:/var/lib/postgresql/data
    ports:
      - "5452:5432"

  pv-utils:
    image: 147.79.66.211:3000/docker/paisavara-utils:development
    container_name: pv-utils
    restart: always
    build: 
      context: .
      dockerfile: Dockerfile

    command: bash -c "python manage.py makemigrations && python manage.py migrate && python manage.py runserver 0.0.0.0:8000"
    volumes:
      - .:/pv-utils
    ports:
      - "8053:8000"
    labels:
      - kompose.service.type=NodePort  # Tell kompose to create LoadBalancer
      - kompose.service.expose=true        # Expose service externally
      - kompose.service.nodeport=30053
    depends_on:
      - pv-db-utils

  pv-db-utils:
    image: postgres:16
    restart: always
    environment:
      POSTGRES_USER: humbingo
      POSTGRES_DB: pv-db-utils
      POSTGRES_PASSWORD: Welcome@1
    volumes:
      - ./pv-db-utils:/var/lib/postgresql/data
    ports:
      - "5453:5432"


  pv-subscription:
    image: 147.79.66.211:3000/docker/paisavara-subscription:development
    container_name: pv-subscription
    restart: always
    build: 
      context: .
      dockerfile: Dockerfile

    command: bash -c "python manage.py makemigrations && python manage.py migrate && python manage.py runserver 0.0.0.0:8000"
    volumes:
      - .:/pv-subscription
    ports:
      - "8054:8000"
    labels:
      - kompose.service.type=NodePort  # Tell kompose to create LoadBalancer
      - kompose.service.expose=true        # Expose service externally
      - kompose.service.nodeport=30054
    depends_on:
      - pv-db-subscription

  pv-db-subscription:
    image: postgres:16
    restart: always
    environment:
      POSTGRES_USER: humbingo
      POSTGRES_DB: pv-db-subscription
      POSTGRES_PASSWORD: Welcome@1
    volumes:
      - ./pv-db-subscription:/var/lib/postgresql/data
    ports:
      - "5454:5432"


  pv-salestax:
    image: 147.79.66.211:3000/docker/paisavara-salestax:latest
    container_name: pv-salestax
    restart: always
    build: 
      context: .
      dockerfile: Dockerfile

    command: bash -c "python manage.py makemigrations && python manage.py migrate && python manage.py runserver 0.0.0.0:8000"
    volumes:
      - .:/pv-salestax
    ports:
      - "8055:8000"
    labels:
      - kompose.service.type=NodePort  # Tell kompose to create LoadBalancer
      - kompose.service.expose=true        # Expose service externally
      - kompose.service.nodeport=30055
    depends_on:
      - pv-db-salestax

  pv-db-salestax:
    image: postgres:16
    restart: always
    environment:
      POSTGRES_USER: humbingo
      POSTGRES_DB: pv-db-salestax
      POSTGRES_PASSWORD: Welcome@1
    volumes:
      - ./pv-db-salestax:/var/lib/postgresql/data
    ports:
      - "5455:5432"


  pv-payroll:
    image: 147.79.66.211:3000/docker/paisavara-payroll:development
    container_name: pv-payroll
    restart: always
    build: 
      context: .
      dockerfile: Dockerfile

    command: bash -c "python manage.py makemigrations && python manage.py migrate && python manage.py runserver 0.0.0.0:8000"
    volumes:
      - .:/pv-payroll
    ports:
      - "8056:8000"
    labels:
      - kompose.service.type=NodePort  # Tell kompose to create LoadBalancer
      - kompose.service.expose=true        # Expose service externally
      - kompose.service.nodeport=30056
    depends_on:
      - pv-db-payroll

  pv-db-payroll:
    image: postgres:16
    restart: always
    environment:
      POSTGRES_USER: humbingo
      POSTGRES_DB: pv-db-payroll
      POSTGRES_PASSWORD: Welcome@1
    volumes:
      - ./pv-db-payroll:/var/lib/postgresql/data
    ports:
      - "5456:5432"


  pv-lottery:
    image: 147.79.66.211:3000/docker/paisavara-lottery:development
    container_name: pv-lottery
    restart: always
    build: 
      context: .
      dockerfile: Dockerfile

    command: bash -c "python manage.py makemigrations && python manage.py migrate && python manage.py runserver 0.0.0.0:8000"
    volumes:
      - .:/pv-lottery
    ports:
      - "8057:8000"
    labels:
      - kompose.service.type=NodePort  # Tell kompose to create LoadBalancer
      - kompose.service.expose=true        # Expose service externally
      - kompose.service.nodeport=30057
    depends_on:
      - pv-db-lottery

  pv-db-lottery:
    image: postgres:16
    restart: always
    environment:
      POSTGRES_USER: humbingo
      POSTGRES_DB: pv-db-lottery
      POSTGRES_PASSWORD: Welcome@1
    volumes:
      - ./pv-db-lottery:/var/lib/postgresql/data
    ports:
      - "5457:5432"

  pv-gas:
    image: 147.79.66.211:3000/docker/paisavara-gas:development
    container_name: pv-gas
    restart: always
    build: 
      context: .
      dockerfile: Dockerfile

    command: bash -c "python manage.py makemigrations && python manage.py migrate && python manage.py runserver 0.0.0.0:8000"
    volumes:
      - .:/pv-gas
    ports:
      - "8058:8000"
    labels:
      - kompose.service.type=NodePort  # Tell kompose to create LoadBalancer
      - kompose.service.expose=true        # Expose service externally
      - kompose.service.nodeport=30058
    depends_on:
      - pv-db-gas

  pv-db-gas:
    image: postgres:16
    restart: always
    environment:
      POSTGRES_USER: humbingo
      POSTGRES_DB: pv-db-gas
      POSTGRES_PASSWORD: Welcome@1
    volumes:
      - ./pv-db-gas:/var/lib/postgresql/data
    ports:
      - "5458:5432"


  pv-product:
    image: 147.79.66.211:3000/docker/paisavara-product:development
    container_name: pv-product
    restart: always
    build: 
      context: .
      dockerfile: Dockerfile

    command: bash -c "python manage.py makemigrations && python manage.py migrate && python manage.py runserver 0.0.0.0:8000"
    volumes:
      - .:/pv-product
    ports:
      - "8059:8000"
    labels:
      - kompose.service.type=NodePort  # Tell kompose to create LoadBalancer
      - kompose.service.expose=true        # Expose service externally
      - kompose.service.nodeport=30059
    depends_on:
      - pv-db-product

  pv-db-product:
    image: postgres:16
    restart: always
    environment:
      POSTGRES_USER: humbingo
      POSTGRES_DB: pv-db-product
      POSTGRES_PASSWORD: Welcome@1
    volumes:
      - ./pv-db-product:/var/lib/postgresql/data
    ports:
      - "5459:5432"

  pv-cheque:
    image: 147.79.66.211:3000/docker/paisavara-chequeservice:development
    container_name: pv-cheque
    restart: always
    build: 
      context: .
      dockerfile: Dockerfile

    command: bash -c "python manage.py makemigrations && python manage.py migrate && python manage.py runserver 0.0.0.0:8000"
    volumes:
      - .:/pv-cheque
    ports:
      - "8060:8000"
    labels:
      - kompose.service.type=NodePort  # Tell kompose to create LoadBalancer
      - kompose.service.expose=true        # Expose service externally
      - kompose.service.nodeport=30060
    depends_on:
      - pv-db-cheque

  pv-db-cheque:
    image: postgres:16
    restart: always
    environment:
      POSTGRES_USER: humbingo
      POSTGRES_DB: pv-db-cheque
      POSTGRES_PASSWORD: Welcome@1
    volumes:
      - ./pv-db-cheque:/var/lib/postgresql/data
    ports:
      - "5460:5432"


  pv-timecard:
    image: 147.79.66.211:3000/docker/paisavara-timecardservice:development
    container_name: pv-timecard
    restart: always
    build: 
      context: .
      dockerfile: Dockerfile

    command: bash -c "python manage.py makemigrations && python manage.py migrate && python manage.py runserver 0.0.0.0:8000"
    volumes:
      - .:/pv-timecard
    ports:
      - "8061:8000"
    labels:
      - kompose.service.type=NodePort  # Tell kompose to create LoadBalancer
      - kompose.service.expose=true        # Expose service externally
      - kompose.service.nodeport=30061
    depends_on:
      - pv-db-timecard

  pv-db-timecard:
    image: postgres:16
    restart: always
    environment:
      POSTGRES_USER: humbingo
      POSTGRES_DB: pv-db-timecard
      POSTGRES_PASSWORD: Welcome@1
    volumes:
      - ./pv-db-timecard:/var/lib/postgresql/data
    ports:
      - "5461:5432"