version: "3.6" x-service: &x-service-base container_name: base restart: always expose: - ${SERVICE_PORT} environment: MYSQL_HOST: ${MYSQL_HOST} MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} MYSQL_DATABASE: ${MYSQL_DATABASE} MYSQL_USER: ${MYSQL_USER} MYSQL_PASSWORD: ${MYSQL_PASSWORD} APP_DOTNET_ENV: ${APP_DOTNET_ENV} APP_CORE_BASE_DOMAIN: ${APP_CORE_BASE_DOMAIN} APP_CORE_MACHINEKEY: ${APP_CORE_MACHINEKEY} DOCUMENT_SERVER_JWT_SECRET: ${DOCUMENT_SERVER_JWT_SECRET} DOCUMENT_SERVER_JWT_HEADER: ${DOCUMENT_SERVER_JWT_HEADER} DOCUMENT_SERVER_URL_PUBLIC: ${DOCUMENT_SERVER_URL_PUBLIC} DOCUMENT_SERVER_URL_INTERNAL: ${DOCUMENT_SERVER_URL_INTERNAL} DOCUMENT_SERVER_URL_CONVERTER: ${DOCUMENT_SERVER_URL_CONVERTER} KAFKA_HOST: ${KAFKA_HOST} ELK_HOST: ${ELK_HOST} PROXY_HOST: ${PROXY_HOST} volumes: #- /app/onlyoffice/CommunityServer/data:/app/onlyoffice/data - app_data:/app/onlyoffice/data - files_data:/var/www/products/ASC.Files/server/ - people_data:/var/www/products/ASC.People/server/ - crm_data:/var/www/products/ASC.CRM/server/ - project_data:/var/www/products/ASC.Projects/server/ - calendar_data:/var/www/products/ASC.Calendar/server/ - mail_data:/var/www/products/ASC.Mail/server/ services: onlyoffice-elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch:${ELK_VERSION} container_name: ${ELK_HOST} restart: always environment: - discovery.type=single-node - bootstrap.memory_lock=true - "ES_JAVA_OPTS=-Xms512m -Xmx512m" ulimits: memlock: soft: -1 hard: -1 nofile: soft: 65535 hard: 65535 volumes: - es_data:/usr/share/elasticsearch/data expose: - "9200" - "9300" onlyoffice-zookeeper: image: zookeeper:latest container_name: ${ZOO_HOST} restart: always expose: - "2181" environment: ZOO_MY_ID: 1 ZOO_PORT: ${ZOO_PORT:-2181} ZOO_SERVER: ${ZOO_SERVER} volumes: - zoo_data:/data - zoo_log:/datalog onlyoffice-kafka: image: confluentinc/cp-kafka:latest container_name: ${KAFKA_HOST} restart: always expose: - "9092" depends_on: - onlyoffice-zookeeper environment: KAFKA_ADVERTISED_LISTENERS: ${KAFKA_ADVERTISED_LISTENERS} KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: ${KAFKA_LISTENER_SECURITY_PROTOCOL_MAP} KAFKA_INTER_BROKER_LISTENER_NAME: ${KAFKA_INTER_BROKER_LISTENER_NAME} KAFKA_ZOOKEEPER_CONNECT: ${KAFKA_ZOOKEEPER_CONNECT} KAFKA_BROKER_ID: ${KAFKA_BROKER_ID} KAFKA_LOG4J_LOGGERS: ${KAFKA_LOG4J_LOGGERS} KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: ${KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR} volumes: - kafka_data:/var/lib/kafka/data onlyoffice-api-system: <<: *x-service-base image: "${REPO}/${STATUS}appserver-api-system:${SRV_VERSION}" container_name: ${API_SYSTEM_HOST} onlyoffice-backup: <<: *x-service-base image: "${REPO}/${STATUS}appserver-backup:${SRV_VERSION}" container_name: ${BACKUP_HOST} onlyoffice-calendar: <<: *x-service-base image: "${REPO}/${STATUS}appserver-calendar:${SRV_VERSION}" container_name: ${CALENDAR_HOST} onlyoffice-crm: <<: *x-service-base image: "${REPO}/${STATUS}appserver-crm:${SRV_VERSION}" container_name: ${CRM_HOST} onlyoffice-storage-encryption: <<: *x-service-base image: "${REPO}/${STATUS}appserver-storage-encryption:${SRV_VERSION}" container_name: ${STORAGE_ENCRYPTION_HOST} onlyoffice-files: <<: *x-service-base image: "${REPO}/${STATUS}appserver-files:${SRV_VERSION}" container_name: ${FILES_HOST} onlyoffice-files-services: <<: *x-service-base image: "${REPO}/${STATUS}appserver-files-services:${SRV_VERSION}" container_name: ${FILES_SERVICES_HOST} onlyoffice-mail: <<: *x-service-base image: "${REPO}/${STATUS}appserver-mail:${SRV_VERSION}" container_name: ${MAIL_HOST} onlyoffice-storage-migration: <<: *x-service-base image: "${REPO}/${STATUS}appserver-storage-migration:${SRV_VERSION}" container_name: ${STORAGE_MIGRATION_HOST} onlyoffice-people-server: <<: *x-service-base image: "${REPO}/${STATUS}appserver-people-server:${SRV_VERSION}" container_name: ${PEOPLE_SERVER_HOST} onlyoffice-projects-server: <<: *x-service-base image: "${REPO}/${STATUS}appserver-projects-server:${SRV_VERSION}" container_name: ${PROJECTS_SERVER_HOST} onlyoffice-socket: <<: *x-service-base image: "${REPO}/${STATUS}appserver-socket:${SRV_VERSION}" container_name: ${SOCKET_HOST} expose: - ${SERVICE_PORT} - "9899" onlyoffice-studio-notify: <<: *x-service-base image: "${REPO}/${STATUS}appserver-studio-notify:${SRV_VERSION}" container_name: ${STUDIO_NOTIFY_HOST} onlyoffice-telegram-service: <<: *x-service-base image: "${REPO}/${STATUS}appserver-telegram-service:${SRV_VERSION}" container_name: ${TELEGRAM_SERVICE_HOST} onlyoffice-thumbnails: <<: *x-service-base image: "${REPO}/${STATUS}appserver-thumbnails:${SRV_VERSION}" container_name: ${THUMBNAILS_HOST} expose: - ${SERVICE_PORT} - "9800" onlyoffice-urlshortener: <<: *x-service-base image: "${REPO}/${STATUS}appserver-urlshortener:${SRV_VERSION}" container_name: ${URLSHORTENER_HOST} expose: - ${SERVICE_PORT} - "9999" onlyoffice-api: <<: *x-service-base image: "${REPO}/${STATUS}appserver-api:${SRV_VERSION}" container_name: ${API_HOST} onlyoffice-studio: <<: *x-service-base image: "${REPO}/${STATUS}appserver-studio:${SRV_VERSION}" container_name: ${STUDIO_HOST} onlyoffice-proxy: image: "${REPO}/${STATUS}appserver-proxy:${SRV_VERSION}" container_name: ${PROXY_HOST} restart: always expose: - "8081" - "8099" - "8092" ports: - 8092:8092 depends_on: - onlyoffice-api-system - onlyoffice-backup - onlyoffice-calendar - onlyoffice-crm - onlyoffice-storage-encryption - onlyoffice-files - onlyoffice-files-services - onlyoffice-mail - onlyoffice-storage-migration - onlyoffice-people-server - onlyoffice-projects-server - onlyoffice-socket - onlyoffice-studio-notify - onlyoffice-telegram-service - onlyoffice-thumbnails - onlyoffice-urlshortener - onlyoffice-api - onlyoffice-studio environment: - SERVICE_API_SYSTEM=${SERVICE_API_SYSTEM} - SERVICE_BACKUP=${SERVICE_BACKUP} - SERVICE_CALENDAR=${SERVICE_CALENDAR} - SERVICE_CRM=${SERVICE_CRM} - SERVICE_STORAGE_ENCRYPTION=${SERVICE_STORAGE_ENCRYPTION} - SERVICE_FILES=${SERVICE_FILES} - SERVICE_FILES_SERVICES=${SERVICE_FILES_SERVICES} - SERVICE_MAIL=${SERVICE_MAIL} - SERVICE_STORAGE_MIGRATION=${SERVICE_STORAGE_MIGRATION} - SERVICE_NOTIFY=${SERVICE_NOTIFY} - SERVICE_PEOPLE_SERVER=${SERVICE_PEOPLE_SERVER} - SERVICE_PROJECTS_SERVER=${SERVICE_PROJECTS_SERVER} - SERVICE_SOCKET=${SERVICE_SOCKET} - SERVICE_STUDIO_NOTIFY=${SERVICE_STUDIO_NOTIFY} - SERVICE_TELEGRAM_SERVICE=${SERVICE_TELEGRAM_SERVICE} - SERVICE_THUMBNAILS=${SERVICE_THUMBNAILS} - SERVICE_URLSHORTENER=${SERVICE_URLSHORTENER} - SERVICE_API=${SERVICE_API} - SERVICE_STUDIO=${SERVICE_STUDIO} - DOCUMENT_SERVER=${DOCUMENT_SERVER_HOST} - SERVICE_PORT=${SERVICE_PORT} volumes: - proxy_log:/var/log/nginx networks: default: external: name: ${NETWORK_NAME} volumes: kafka_data: es_data: zoo_data: zoo_log: proxy_log: app_data: files_data: people_data: crm_data: project_data: calendar_data: mail_data: