version: '3.1'

services:
  db:
    image: mysql:8.0
    restart: always
    environment:
      MYSQL_DATABASE: paopao
      MYSQL_USER: paopao
      MYSQL_PASSWORD: paopao
      MYSQL_RANDOM_ROOT_PASSWORD: yes
    volumes:
      - ./scripts/paopao-mysql.sql:/docker-entrypoint-initdb.d/paopao.sql
      - ./data/mysql/data:/var/lib/mysql
    ports:
      - 127.0.0.1::3306
    networks:
      - paopao-network

  # minio:
  #   image: bitnami/minio:latest
  #   restart: always
  #   environment:
  #     MINIO_ROOT_USER: minio-root-user
  #     MINIO_ROOT_PASSWORD: minio-root-password
  #     MINIO_DEFAULT_BUCKETS: paopao:public
  #   ports:
  #     - 9000:9000
  #     - 9001:9001
  #   volumes:
  #     - ./data/minio/data:/data
  #   networks:
  #     - paopao-network

  redis:
    image: redis:7.0-alpine
    restart: always
    ports:
      - 6379:6379
    networks:
      - paopao-network
  
  zinc:
    image: public.ecr.aws/zinclabs/zinc:latest
    user: root
    restart: always
    ports:
      - 4080:4080
    volumes:
      - ./data/zinc/data:/data
    environment:
      ZINC_FIRST_ADMIN_USER: admin
      ZINC_FIRST_ADMIN_PASSWORD: admin
      DATA_PATH: /data
    networks:
      - paopao-network

  # meili:
  #   image: getmeili/meilisearch:v0.29.0
  #   restart: always
  #   ports:
  #     - 7700:7700
  #   volumes:
  #     - ./data/meili/data:/meili_data
  #   environment:
  #     - MEILI_MASTER_KEY=paopao-meilisearch
  #   networks:
  #     - paopao-network
  
  # # a ui for managing your meilisearch instances
  # uirecord:
  #   image: bitriory/uirecord:latest
  #   restart: always
  #   ports:
  #     - 7701:3000
  #   networks:
  #     - paopao-network

  phpmyadmin:
    image: phpmyadmin:5.2
    depends_on:
      - db
    ports:
      - 8080:80
    environment:
      - PMA_HOST=db
      - PMA_USER=paopao
      - PMA_PASSWORD=paopao
    networks:
      - paopao-network

  backend:
    build:
      context: .
    restart: always
    depends_on:
      - db
      - redis
      - zinc
    # modify below to reflect your custom configure
    volumes:
      - ./config.yaml.sample:/app/paopao-ce/config.yaml
      - ./data/paopao-ce/data:/app/paopao-ce/data
    ports:
      - 8008:8008
    networks:
      - paopao-network

networks:
  paopao-network:
      driver: bridge