sync-engine 0.2.3

High-performance tiered sync engine with L1/L2/L3 caching and Redis/SQL backends
Documentation
name: sync-engine-test-environment

services:
  mysql-sync-engine:
    image: mysql:8.0
    container_name: mysql-sync-engine
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: test
      MYSQL_DATABASE: test
      MYSQL_USER: test
      MYSQL_PASSWORD: test
    ports:
      - "3306:3306"
    volumes:
      - mysql_data:/var/lib/mysql
    command:
      - --default-authentication-plugin=mysql_native_password
      - --character-set-server=utf8mb4
      - --collation-server=utf8mb4_unicode_ci
      - --max_connections=100
      - --innodb_buffer_pool_size=256M
    healthcheck:
      test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "test", "-ptest"]
      interval: 10s
      timeout: 5s
      retries: 5

  redis-sync-engine:
    image: "redis/redis-stack:latest"
    container_name: redis-sync-engine
    ports:
      - "6379:6379"
    command: >
      redis-server 
      --save "" 
      --appendonly no 
      --maxmemory 100Mb 
      --maxmemory-policy allkeys-lru 
      --loglevel notice
      --protected-mode no
      --loadmodule /opt/redis-stack/lib/rejson.so
      --loadmodule /opt/redis-stack/lib/redisearch.so
    tmpfs:
      - /data:rw,noexec,nosuid,size=1024
    healthcheck:
      test: ["CMD", "redis-cli", "ping"]
      interval: 10s
      timeout: 3s
      retries: 3

  # redis-insight:
  #   image: redis/redisinsight:latest
  #   container_name: redis-insight
  #   ports:
  #     - "5540:5540"
  #   environment:
  #     - REDIS_HOSTS=local:redis:6379
  #     - REDIS_HOST=redis
  #     - REDIS_PORT=6379
  #     - REDIS_PASSWORD=""
  #   depends_on:
  #     redis-sync-engine:
  #       condition: service_healthy
  #   volumes:
  #     - redis_insight_data:/data

  # adminer:
  #   image: adminer:latest
  #   container_name: adminer
  #   ports:
  #     - "8080:8080"
  #   depends_on:
  #     mysql-sync-engine:
  #       condition: service_healthy
  #   environment:
  #     - ADMINER_DEFAULT_SERVER=mysql-sync-engine
  #     - ADMINER_DESIGN=pepa-linha

volumes:
  mysql_data:
  redis_insight_data: