---
version: "3"

services:

  # --- MariaDB
  db:
    image: docker.io/library/mariadb:11.2
    command: mariadbd --character-set-server=utf8mb4 --collation-server=utf8mb4_bin
    environment:
      - MYSQL_ROOT_PASSWORD=${DB_PASSWORD}
      - MYSQL_USER=${DB_USERNAME}
      - MYSQL_PASSWORD=${DB_PASSWORD}
      - MYSQL_DATABASE=${DB_DATABASE}
    ports:
      - "127.0.0.1:3306:3306"
    volumes:
      - linkace-db:/var/lib/mysql

  pg-db:
    image: docker.io/library/postgres:16
    environment:
      - POSTGRES_PASSWORD=${DB_PASSWORD}
      - POSTGRES_USER=${DB_USERNAME}
      - POSTGRES_DB=${DB_DATABASE}
    ports:
      - "127.0.0.1:5432:5432"
    volumes:
      - linkace-pg-db:/var/lib/postgresql/data

  # --- PHP
  php:
    build:
      context: .
      dockerfile: ./resources/docker/dockerfiles/development.Dockerfile
    depends_on:
      - db
    volumes:
      - .:/app:delegated
      - ./resources/docker/php/php-dev.ini:/usr/local/etc/php/conf.d/php.ini:ro

  # --- nginx
  nginx:
    image: docker.io/bitnami/nginx:1.25
    ports:
      - "80:8080"
    depends_on:
      - php
    volumes:
      - .:/app:delegated
      - ./resources/docker/nginx/dev.conf:/opt/bitnami/nginx/conf/server_blocks/linkace.conf:ro

  # --- Redis
  redis:
    image: docker.io/bitnami/redis:7.2
    environment:
      - REDIS_PASSWORD=${REDIS_PASSWORD}
    ports:
      - "127.0.0.1:6379:6379"

volumes:
  linkace-db:
    driver: local
  linkace-pg-db:
    driver: local
