# File: mariadb/docker-compose-db.yml
# DMS Container v1_7_0 Servive: mariadb, pma
x-restart: &restart_policy
  restart: unless-stopped

x-logging: &default_logging
  logging:
    driver: "json-file"
    options:
      max-size: "10m"
      max-file: "5"

services:
  mariadb:
    <<: [*restart_policy, *default_logging]
    image: mariadb:11.8
    container_name: mariadb
    stdin_open: true
    tty: true
    deploy:
      resources:
        limits:
          cpus: "2.0"
          memory: 4G
        reservations:
          cpus: "0.5"
          memory: 1G
    environment:
      MYSQL_ROOT_PASSWORD: "Center#2025"
      MYSQL_DATABASE: "lcbp3"
      MYSQL_USER: "center"
      MYSQL_PASSWORD: "Center#2025"
      TZ: "Asia/Bangkok"
    ports:
      - "3306:3306"
    volumes:
      - "/share/nap-dms/mariadb/data:/var/lib/mysql"
      - "/share/nap-dms/mariadb/my.cnf:/etc/mysql/conf.d/my.cnf:ro"
      - "/share/nap-dms/mariadb/init:/docker-entrypoint-initdb.d:ro"
      - "/share/dms-data/mariadb/backup:/backup"
    healthcheck:
      test:
        ["CMD-SHELL", "mysqladmin ping -h 127.0.0.1 -pCenter#2025 || exit 1"]
      interval: 10s
      timeout: 5s
      retries: 15
    networks:
      lcbp3: {}

  pma:
    <<: [*restart_policy, *default_logging]
    image: phpmyadmin:5-apache
    container_name: pma
    stdin_open: true
    tty: true
    deploy:
      resources:
        limits:
          cpus: "0.25"
          memory: 256M
    environment:
      TZ: "Asia/Bangkok"
      PMA_HOST: "mariadb"
      PMA_PORT: "3306"
      PMA_ABSOLUTE_URI: "https://pma.np-dms.work/"
      UPLOAD_LIMIT: "1G"
      MEMORY_LIMIT: "512M"
    ports:
      - "89:80"
    # expose:
    #  - "80"
    volumes:
      - "/share/Container/pma/config.user.inc.php:/etc/phpmyadmin/config.user.inc.php:ro"
      - "/share/Container/pma/zzz-custom.ini:/usr/local/etc/php/conf.d/zzz-custom.ini:ro"
      - "/share/Container/pma/tmp:/var/lib/phpmyadmin/tmp:rw"
      - "/share/dms-data/logs/pma:/var/log/apache2"
    depends_on:
      mariadb:
        condition: service_healthy
    networks:
      lcbp3: {}

networks:
  lcbp3:
    external: true

# chown -R 999:999 /share/nap-dms/mariadb/init
# chmod 755 /share/nap-dms/mariadb/init
# setfacl -R -m u:999:r-x /share/nap-dms/mariadb/init
# setfacl -R -d -m u:999:r-x /share/nap-dms/mariadb/init

# chown -R 33:33 /share/Container/pma/tmp
# chmod 755 /share/Container/pma/tmp
# setfacl -R -m u:33:rwx /share/Container/pma/tmp
# setfacl -R -d -m u:33:rwx /share/Container/pma/tmp

# chown -R 33:33 /share/dms-data/logs/pma
# chmod 755 /share/dms-data/logs/pma
# setfacl -R -m u:33:rwx /share/dms-data/logs/pma
# setfacl -R -d -m u:33:rwx /share/dms-data/logs/pma

# setfacl -R -m u:1000:rwx /share/Container/gitea
# setfacl -R -m u:1000:rwx /share/dms-data/gitea_repos
# setfacl -R -m u:1000:rwx /share/dms-data/gitea_registry

# docker exec -it mariadb mysql -u root -p
#   CREATE DATABASE npm;
#   CREATE USER 'npm'@'%' IDENTIFIED BY 'npm';
#   GRANT ALL PRIVILEGES ON npm.* TO 'npm'@'%';
#   FLUSH PRIVILEGES;
