services:
  proxy:
    profiles:
      - app
    image: nginx:alpine
    container_name: incoviba_proxy
    restart: unless-stopped
    ports:
      - "${APP_PORT}:80"
    volumes:
      - ${APP_PATH:-.}/:/code
      - ./nginx.conf:/etc/nginx/conf.d/default.conf
      - ./logs/proxy:/logs

  web:
    profiles:
      - app
    build: .
    container_name: incoviba_web
    restart: unless-stopped
    env_file:
      - ${APP_PATH:-.}/.env
      - ./.key.env
    volumes:
      - ${APP_PATH:-.}/:/code
      - ./logs/php:/logs

  db:
    profiles:
      - db
    image: mariadb:latest
    container_name: incoviba_db
    restart: unless-stopped
    env_file: ${APP_PATH:-.}/.db.env
    volumes:
      - dbdata:/var/lib/mysql
      - ./incoviba.sql.gz:/docker-entrypoint-initdb.d/incoviba.sql.gz
    ports:
      - "33060:3306"
    networks:
      - default
      - adminer_network

  redis:
    profiles:
      - cache
    image: redis
    container_name: incoviba_redis
    restart: unless-stopped
    env_file: ${APP_PATH:-.}/.redis.env
    volumes:
      - incoviba_redis:/data
    ports:
      - "63790:6379"

  logview:
    profiles:
      - log
    build:
      context: .
      dockerfile: Log.Dockerfile
    container_name: incoviba_logview
    restart: unless-stopped
    environment:
      WEB_URL: 'http://provm.cl:8084'
      WEB_PORT: '8084'
    volumes:
      - ./logs:/logs
    ports:
      - "8084:80"
  cli:
    profiles:
      - cli
    build:
      context: .
      dockerfile: CLI.Dockerfile
    container_name: incoviba_cli
    restart: unless-stopped
    env_file:
      - ${CLI_PATH:-.}/.env
      - ./.key.env
    volumes:
      - ${CLI_PATH:-.}:/code
      - ./logs/cli:/logs

volumes:
  dbdata: {}
  incoviba_redis: {}

networks:
  adminer_network: {}
