version: '3.4'

services:
  php-nginx:
    container_name: php-container
    image: jianboy/php:8
    build:
      context: .
      dockerfile: ./Dockerfile
    restart: unless-stopped
    volumes:
      - ./src:/var/www/html
      # - ./apache/:/etc/apache2/sites-enabled/
    ports:
      - 9000:9000
    networks:
      - app-network
    depends_on:
      - mysql
      - redis

  phpmyadmin:
    image: phpmyadmin/phpmyadmin:5.2.1-fpm-alpine
    ports:
      - '8080:80'
    restart: always
    environment:
      PMA_HOST: mysql
    depends_on:
      - mysql

  mysql:
    container_name: mysql-container
    image: mysql:8.0
    restart: unless-stopped
    volumes:
      - ./mysql:/var/lib/mysql
    environment:
      MYSQL_DATABASE: laravel
      MYSQL_USER: laravel
      MYSQL_PASSWORD: laravel
      MYSQL_ROOT_PASSWORD: laravel
    ports:
      - 3306:3306
    networks:
      - app-network

  redis:
    image: redis:7.2.3
    container_name: redis-container
    restart: unless-stopped
    environment:
      - ALLOW_EMPTY_PASSWORD=yes
    ports:
      - 6379:6379
    volumes:
      - ./redis:/data
    networks:
      - app-network
    # command: [ "redis-server", "/usr/local/etc/redis/redis.conf" ]
    logging:
      driver: 'json-file'
      options:
        max-size: '30m'
        max-file: '1'

  redis-commander:
    container_name: infisical-dev-redis-commander
    image: rediscommander/redis-commander:latest
    restart: always
    depends_on:
      - redis
    environment:
      - REDIS_HOSTS=local:redis:6379
    ports:
      - "8085:8081"
    networks:
      - infisical-dev

  volumes:
    mysql:
    redis:

  networks:
    app-network:
      driver: bridge