version: '3.6'

services:
  nginx:
    image: nginx
    restart: always
    volumes:
      - ${PROJECTS_DIR}:/usr/share/nginx/html
      - ./config/nginx/conf.d:/etc/nginx/conf.d
      - ./config/nginx/includes.d:/etc/nginx/includes.d
      - ./log/nginx:/var/log/nginx
    ports:
      - "80:80"
  php:
    build:
      context: ./dockerfiles/php-fpm
      args:
        - INSTALL_REDIS=${INSTALL_REDIS}
        - INSTALL_PEAR_MAIL=${INSTALL_PEAR_MAIL}
        - PHP_OPT_SHORT_OPEN_TAG=${PHP_OPT_SHORT_OPEN_TAG}
        - PHP_OPT_MAX_EXECUTION_TIME=${PHP_OPT_MAX_EXECUTION_TIME}
        - PHP_OPT_MEMORY_LIMIT=${PHP_OPT_MEMORY_LIMIT}
        - PHP_OPT_POST_MAX_SIZE=${PHP_OPT_POST_MAX_SIZE}
        - PHP_OPT_UPLOAD_MAX_FILESIZE=${PHP_OPT_UPLOAD_MAX_FILESIZE}
    restart: always
    volumes:
      - ${PROJECTS_DIR}:/usr/share/nginx/html
      - ./data/profiler:/tmp/profiler
  workspace:
    build:
      context: ./dockerfiles/workspace
      args:
        - CUSTOM_PUID=${WORKSPACE_PUID}
        - CUSTOM_PGID=${WORKSPACE_PGID}
        - CUSTOM_TZ=${WORKSPACE_TIMEZONE}
        - COMPOSER_VERSION=${WORKSPACE_COMPOSER_VERSION}
        - CUSTOM_NODE_VERSION=${WORKSPACE_CUSTOM_NODE_VERSION}
        - PHP_OPT_SHORT_OPEN_TAG=${PHP_OPT_SHORT_OPEN_TAG}
        - PHP_OPT_MAX_EXECUTION_TIME=${WORKSPACE_PHP_OPT_MAX_EXECUTION_TIME}
        - PHP_OPT_MEMORY_LIMIT=${WORKSPACE_PHP_OPT_MEMORY_LIMIT}
    restart: always
    volumes:
      - ${PROJECTS_DIR}:/var/www
    extra_hosts:
      - "dockerhost:${DOCKER_HOST_IP}"
    secrets:
      - user_ssh_key
      - user_known_hosts
      - composer_auth
  db:
    image: mariadb
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: 123456
    ports:
      - "3306:3306"
    volumes:
      - database:/var/lib/mysql
      - ./hostfiles:/hostfiles
      - ./log/mariadb:/var/log/mariadb
      - ./config/mariadb:/etc/mysql/conf.d
  pma:
    image: phpmyadmin/phpmyadmin
    restart: always
    environment:
      PMA_HOST: db
      PMA_USER: root
      PMA_PASSWORD: 123456
    ports:
      - "81:80"
  inbucket:
    image: inbucket/inbucket
    restart: always
    ports:
      - "2500:2500"
      - "9090:9000"
  redis:
    image: redis
    restart: always
    command: [ "redis-server", "/usr/local/etc/redis/redis.conf" ]
    volumes:
      - ./config/redis/redis.conf:/usr/local/etc/redis/redis.conf