version: '2'
services:
  onlyoffice-documentserver-data:
    container_name: onlyoffice-documentserver-data
    image: onlyoffice/4testing-documentserver:latest
    environment:
      - ONLYOFFICE_DATA_CONTAINER=true
      - MYSQL_SERVER_HOST=onlyoffice-mysql
      - MYSQL_SERVER_PORT=3306
      - MYSQL_SERVER_DB_NAME=onlyoffice
      - MYSQL_SERVER_USER=root
      - RABBITMQ_SERVER_HOST=onlyoffice-rabbitmq
      - RABBITMQ_SERVER_USER=guest
      - RABBITMQ_SERVER_PASS=guest
      - REDIS_SERVER_HOST=onlyoffice-redis
      - REDIS_SERVER_PORT=6379
    stdin_open: true
    restart: always
    networks:
      - onlyoffice
    volumes:
       - /var/www/onlyoffice/Data
       - /var/log/onlyoffice
       - /var/lib/onlyoffice/documentserver/App_Data/cache/files
       - /var/www/onlyoffice/documentserver-example/public/files
       - /usr/share/fonts
       
  onlyoffice-documentserver:
    image: onlyoffice/4testing-documentserver:latest
    depends_on:
      - onlyoffice-documentserver-data
      - onlyoffice-mysql
      - onlyoffice-redis
      - onlyoffice-rabbitmq
    environment:
      - ONLYOFFICE_DATA_CONTAINER_HOST=onlyoffice-documentserver-data
      - BALANCE=uri depth 3
      - HTTP_CHECK=GET /healthcheck
      - EXTRA_SETTINGS=http-check expect string true
      # Uncomment the string below to redirect HTTP request to HTTPS request.
      #- FORCE_SSL=true
    stdin_open: true
    restart: always
    networks:
      - onlyoffice
    expose:
      - '80'
    volumes_from:
     - onlyoffice-documentserver-data

  onlyoffice-haproxy:
    container_name: onlyoffice-haproxy
    image: dockercloud/haproxy:1.5.1
    depends_on:
      - onlyoffice-documentserver
    environment:
      - MODE=http
      # Uncomment the string below to specify the path of ssl certificates
      #- CERT_FOLDER=/certs/
    stdin_open: true
    links:
     - onlyoffice-documentserver
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      # Uncomment the string below to map a ssl certificate from host
      # to the proxy container
      #- /app/onlyoffice/DocumentServer/data/certs/onlyoffice.pem:/certs/cert1.pem
    restart: always
    networks:
     - onlyoffice
    ports:
      - '80:80'
      - '443:443'
      - '1936:1936'
       
  onlyoffice-redis:
    container_name: onlyoffice-redis
    image: redis
    restart: always
    networks:
     - onlyoffice
    expose:
      - '6379'

  onlyoffice-rabbitmq:
    container_name: onlyoffice-rabbitmq
    image: rabbitmq
    restart: always
    networks:
     - onlyoffice
    expose:
      - '5672'

  onlyoffice-mysql:
    container_name: onlyoffice-mysql
    image: mysql:5.5
    environment:
      - MYSQL_DATABASE=onlyoffice
      - MYSQL_USER=root
      - MYSQL_ALLOW_EMPTY_PASSWORD='true'
    networks:
      - onlyoffice
    restart: always
    expose:
      - '3306'
    volumes:
      - mysql_data:/var/lib/mysql

networks:
  onlyoffice:
    driver: 'bridge'

volumes:
  mysql_data: