version: '3.5'

# Legacy Databases Servers (for developers only)

services:
  ## Affected by MDEV-25362: Incorrect name resolution for subqueries in ON expressions
  ## see https://jira.mariadb.org/browse/MDEV-25362
  mariadb-10-5-5:
    image: mariadb:10.5.5
    command: mysqld --port=4001 --transaction-isolation=READ-COMMITTED --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --max-connections=512 --innodb-rollback-on-timeout=OFF --innodb-lock-wait-timeout=120
    expose:
      - "4001" # Database port (internal)
    volumes:
      - "./scripts/sql/init-test-databases.sql:/docker-entrypoint-initdb.d/init-test-databases.sql"
    environment:
      MYSQL_ROOT_PASSWORD: photoprism
      MYSQL_USER: photoprism
      MYSQL_PASSWORD: photoprism
      MYSQL_DATABASE: photoprism

  mariadb-10-3:
    image: mariadb:10.3
    command: mysqld --port=4001 --transaction-isolation=READ-COMMITTED --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --max-connections=512 --innodb-rollback-on-timeout=OFF --innodb-lock-wait-timeout=120
    expose:
      - "4001" # Database port (internal)
    volumes:
      - "./scripts/sql/init-test-databases.sql:/docker-entrypoint-initdb.d/init-test-databases.sql"
    environment:
      MYSQL_ROOT_PASSWORD: photoprism
      MYSQL_USER: photoprism
      MYSQL_PASSWORD: photoprism
      MYSQL_DATABASE: photoprism

  mariadb-10-2:
    image: mariadb:10.2
    command: mysqld --port=4001 --transaction-isolation=READ-COMMITTED --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --max-connections=512 --innodb-rollback-on-timeout=OFF --innodb-lock-wait-timeout=120
    expose:
      - "4001" # Database port (internal)
    volumes:
      - "./scripts/sql/init-test-databases.sql:/docker-entrypoint-initdb.d/init-test-databases.sql"
    environment:
      MYSQL_ROOT_PASSWORD: photoprism
      MYSQL_USER: photoprism
      MYSQL_PASSWORD: photoprism
      MYSQL_DATABASE: photoprism

  mariadb-10-1:
    image: mariadb:10.1
    command: mysqld --port=4001 --transaction-isolation=READ-COMMITTED --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --max-connections=512 --innodb-rollback-on-timeout=OFF --innodb-lock-wait-timeout=120
    expose:
      - "4001" # Database port (internal)
    volumes:
      - "./scripts/sql/init-test-databases.sql:/docker-entrypoint-initdb.d/init-test-databases.sql"
    environment:
      MYSQL_ROOT_PASSWORD: photoprism
      MYSQL_USER: photoprism
      MYSQL_PASSWORD: photoprism
      MYSQL_DATABASE: photoprism

  mysql-8:
    image: mysql:8
    command: mysqld --port=4001 --transaction-isolation=READ-COMMITTED --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --max-connections=512 --innodb-rollback-on-timeout=OFF --innodb-lock-wait-timeout=120
    expose:
      - "4001" # Database port (internal)
    volumes:
      - "./scripts/sql/init-test-databases.sql:/docker-entrypoint-initdb.d/init-test-databases.sql"
    environment:
      MYSQL_ROOT_PASSWORD: photoprism
      MYSQL_USER: photoprism
      MYSQL_PASSWORD: photoprism
      MYSQL_DATABASE: photoprism

networks:
  default:
    external:
      name: shared