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} 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-api-system: <<: *x-service-base image: "${REPO}/${STATUS}appserver-api-system:${DOCKER_TAG}" container_name: ${API_SYSTEM_HOST} onlyoffice-backup: <<: *x-service-base image: "${REPO}/${STATUS}appserver-backup:${DOCKER_TAG}" container_name: ${BACKUP_HOST} onlyoffice-calendar: <<: *x-service-base image: "${REPO}/${STATUS}appserver-calendar:${DOCKER_TAG}" container_name: ${CALENDAR_HOST} onlyoffice-crm: <<: *x-service-base image: "${REPO}/${STATUS}appserver-crm:${DOCKER_TAG}" container_name: ${CRM_HOST} onlyoffice-storage-encryption: <<: *x-service-base image: "${REPO}/${STATUS}appserver-storage-encryption:${DOCKER_TAG}" container_name: ${STORAGE_ENCRYPTION_HOST} onlyoffice-files: <<: *x-service-base image: "${REPO}/${STATUS}appserver-files:${DOCKER_TAG}" container_name: ${FILES_HOST} onlyoffice-files-services: <<: *x-service-base image: "${REPO}/${STATUS}appserver-files-services:${DOCKER_TAG}" container_name: ${FILES_SERVICES_HOST} onlyoffice-mail: <<: *x-service-base image: "${REPO}/${STATUS}appserver-mail:${DOCKER_TAG}" container_name: ${MAIL_HOST} onlyoffice-storage-migration: <<: *x-service-base image: "${REPO}/${STATUS}appserver-storage-migration:${DOCKER_TAG}" container_name: ${STORAGE_MIGRATION_HOST} onlyoffice-people-server: <<: *x-service-base image: "${REPO}/${STATUS}appserver-people-server:${DOCKER_TAG}" container_name: ${PEOPLE_SERVER_HOST} onlyoffice-projects-server: <<: *x-service-base image: "${REPO}/${STATUS}appserver-projects-server:${DOCKER_TAG}" container_name: ${PROJECTS_SERVER_HOST} onlyoffice-socket: <<: *x-service-base image: "${REPO}/${STATUS}appserver-socket:${DOCKER_TAG}" container_name: ${SOCKET_HOST} expose: - ${SERVICE_PORT} - "9899" onlyoffice-studio-notify: <<: *x-service-base image: "${REPO}/${STATUS}appserver-studio-notify:${DOCKER_TAG}" container_name: ${STUDIO_NOTIFY_HOST} onlyoffice-telegram-service: <<: *x-service-base image: "${REPO}/${STATUS}appserver-telegram-service:${DOCKER_TAG}" container_name: ${TELEGRAM_SERVICE_HOST} onlyoffice-thumbnails: <<: *x-service-base image: "${REPO}/${STATUS}appserver-thumbnails:${DOCKER_TAG}" container_name: ${THUMBNAILS_HOST} expose: - ${SERVICE_PORT} - "9800" onlyoffice-urlshortener: <<: *x-service-base image: "${REPO}/${STATUS}appserver-urlshortener:${DOCKER_TAG}" container_name: ${URLSHORTENER_HOST} expose: - ${SERVICE_PORT} - "9999" onlyoffice-api: <<: *x-service-base image: "${REPO}/${STATUS}appserver-api:${DOCKER_TAG}" container_name: ${API_HOST} onlyoffice-studio: <<: *x-service-base image: "${REPO}/${STATUS}appserver-studio:${DOCKER_TAG}" container_name: ${STUDIO_HOST} onlyoffice-ssoauth: <<: *x-service-base image: "${REPO}/${STATUS}appserver-ssoauth:${DOCKER_TAG}" container_name: ${SSOAUTH_HOST} expose: - ${SERVICE_PORT} - "9834" onlyoffice-proxy: image: "${REPO}/${STATUS}appserver-proxy:${DOCKER_TAG}" 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 - onlyoffice-ssoauth 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} - SERVICE_SSOAUTH=${SERVICE_SSOAUTH} - DOCUMENT_SERVER=${DOCUMENT_SERVER_HOST} - SERVICE_PORT=${SERVICE_PORT} volumes: - proxy_log:/var/log/nginx networks: default: external: name: ${NETWORK_NAME} volumes: es_data: proxy_log: app_data: files_data: people_data: crm_data: project_data: calendar_data: mail_data: