Merge branch 'develop' of github.com:ONLYOFFICE/AppServer into develop

This commit is contained in:
mushka 2022-07-21 15:42:48 +03:00
commit 55505a4327
12 changed files with 411 additions and 201 deletions

View File

@ -42,11 +42,12 @@ done
echo "== BACK-END-BUILD =="
cd ${SRC_PATH}
dotnet build ASC.Web.sln ${ARGS}
dotnet build ASC.Web.slnf ${ARGS}
# Array of names backend services in directory common (Nodejs)
services_name_backend_nodejs=(ASC.Thumbnails)
# Array of names backend services in directory common (Nodejs)
services_name_backend_nodejs=()
services_name_backend_nodejs+=(ASC.Thumbnails)
services_name_backend_nodejs+=(ASC.UrlShortener)
services_name_backend_nodejs+=(ASC.Socket.IO)
services_name_backend_nodejs+=(ASC.SsoAuth)

View File

@ -56,6 +56,7 @@ while [ "$1" != "" ]; do
done
# Array of names server in directory products
servers_products_name_backend=()
servers_products_name_backend+=(ASC.Files)
servers_products_name_backend+=(ASC.People)
@ -68,20 +69,19 @@ for i in ${!servers_products_name_backend[@]}; do
done
# Array of names backend services
services_name_backend=(ASC.ApiSystem)
services_name_backend=()
services_name_backend+=(ASC.Data.Backup)
services_name_backend+=(ASC.Data.Storage.Encryption)
services_name_backend+=(ASC.Files.Service)
services_name_backend+=(ASC.Data.Storage.Migration)
services_name_backend+=(ASC.Notify)
services_name_backend+=(ASC.Socket.IO.Svc)
services_name_backend+=(ASC.Studio.Notify)
services_name_backend+=(ASC.TelegramService)
services_name_backend+=(ASC.Thumbnails.Svc)
services_name_backend+=(ASC.UrlShortener.Svc)
services_name_backend+=(ASC.Web.Api)
services_name_backend+=(ASC.Web.Studio)
services_name_backend+=(ASC.SsoAuth.Svc)
#services_name_backend+=(ASC.Thumbnails.Svc)
services_name_backend+=(ASC.Data.Backup.BackgroundTasks)
services_name_backend+=(ASC.ClearEvents)
services_name_backend+=(ASC.Webhooks.Service)
# Publish backend services
for i in ${!services_name_backend[@]}; do
@ -91,8 +91,9 @@ for i in ${!services_name_backend[@]}; do
dotnet publish -c Release --self-contained ${SELF_CONTAINED} ${ARGS} -o ${BUILD_PATH}/services/${services_name_backend[$i]}/service/
done
# Array of names backend services in directory common (Nodejs)
services_name_backend_nodejs=(ASC.Thumbnails)
# Array of names backend services in directory common (Nodejs)
services_name_backend_nodejs=()
#services_name_backend_nodejs+=(ASC.Thumbnails)
services_name_backend_nodejs+=(ASC.UrlShortener)
services_name_backend_nodejs+=(ASC.Socket.IO)
services_name_backend_nodejs+=(ASC.SsoAuth)

View File

@ -29,7 +29,7 @@
ELK_HOST=${CONTAINER_PREFIX}elasticsearch
# app service environment #
APP_DOTNET_ENV=test
ENV_EXTENSION=none
APP_CORE_BASE_DOMAIN=localhost
APP_CORE_MACHINEKEY=your_core_machinekey
@ -74,13 +74,13 @@
SERVICE_STORAGE_MIGRATION=${STORAGE_MIGRATION_HOST}:${SERVICE_PORT}
SERVICE_NOTIFY=${NOTIFY_HOST}:${SERVICE_PORT}
SERVICE_PEOPLE_SERVER=${PEOPLE_SERVER_HOST}:${SERVICE_PORT}
SERVICE_SOCKET=${SOCKET_HOST}:9899
SERVICE_SOCKET=${SOCKET_HOST}:${SERVICE_PORT}
SERVICE_STUDIO_NOTIFY=${STUDIO_NOTIFY_HOST}:${SERVICE_PORT}
SERVICE_TELEGRAM_SERVICE=${TELEGRAM_SERVICE_HOST}:${SERVICE_PORT}
SERVICE_THUMBNAILS=${THUMBNAILS_HOST}:9800
SERVICE_URLSHORTENER=${URLSHORTENER_HOST}:9999
SERVICE_THUMBNAILS=${THUMBNAILS_HOST}:${SERVICE_PORT}
SERVICE_URLSHORTENER=${URLSHORTENER_HOST}:${SERVICE_PORT}
SERVICE_API=${API_HOST}:${SERVICE_PORT}
SERVICE_STUDIO=${STUDIO_HOST}:${SERVICE_PORT}
SERVICE_SSOAUTH=${SSOAUTH_HOST}:9834
SERVICE_SSOAUTH=${SSOAUTH_HOST}:${SERVICE_PORT}
NETWORK_NAME=${PRODUCT}

View File

@ -1,4 +1,3 @@
### STAGE 1: Base image ######
ARG SRC_PATH=/app/onlyoffice/src
ARG BUILD_PATH=/var/www
ARG REPO_SDK=mcr.microsoft.com/dotnet/sdk
@ -7,7 +6,7 @@ ARG REPO_RUN=mcr.microsoft.com/dotnet/aspnet
ARG REPO_RUN_TAG=6.0
FROM $REPO_SDK:$REPO_SDK_TAG AS base
ARG RELEASE_DATE="2016-06-21"
ARG RELEASE_DATE="2016-06-22"
ARG DEBIAN_FRONTEND=noninteractive
ARG PRODUCT_VERSION=0.0.0
ARG BUILD_NUMBER=0
@ -43,7 +42,11 @@ RUN echo ${GIT_BRANCH} && \
git clone --recurse-submodules -b ${GIT_BRANCH} https://github.com/ONLYOFFICE/AppServer.git ${SRC_PATH}
RUN cd ${SRC_PATH} && \
mkdir -p /app/onlyoffice/config/ && cp -rf config/* /app/onlyoffice/config/ && \
# mkdir -p /app/onlyoffice/config/ && cp -rf config/* /app/onlyoffice/config/ && \
mkdir -p /app/onlyoffice/ && \
find config/ -maxdepth 1 -name "*.json" | grep -v test | xargs tar -cvf config.tar && \
tar -C "/app/onlyoffice/" -xvf config.tar && \
cp config/*.config /app/onlyoffice/config/ && \
mkdir -p /etc/nginx/conf.d && cp -f config/nginx/onlyoffice*.conf /etc/nginx/conf.d/ && \
mkdir -p /etc/nginx/includes/ && cp -f config/nginx/includes/onlyoffice*.conf /etc/nginx/includes/ && \
sed -i "s/\"number\".*,/\"number\": \"${PRODUCT_VERSION}.${BUILD_NUMBER}\",/g" /app/onlyoffice/config/appsettings.json && \
@ -56,48 +59,64 @@ RUN cd ${SRC_PATH} && \
rm -rf ${SRC_PATH}/common/* && \
rm -rf ${SRC_PATH}/web/ASC.Web.Core/* && \
rm -rf ${SRC_PATH}/web/ASC.Web.Studio/* && \
rm -rf ${SRC_PATH}/products/ASC.Calendar/Server/* && \
rm -rf ${SRC_PATH}/products/ASC.CRM/Server/* && \
rm -rf ${SRC_PATH}/products/ASC.Files/Server/* && \
rm -rf ${SRC_PATH}/products/ASC.Files/Service/* && \
rm -rf ${SRC_PATH}/products/ASC.Mail/Server/* && \
rm -rf ${SRC_PATH}/products/ASC.People/Server/* && \
rm -rf ${SRC_PATH}/products/ASC.Projects/Server/*
rm -rf ${SRC_PATH}/products/ASC.People/Server/*
COPY config/mysql/conf.d/mysql.cnf /etc/mysql/conf.d/mysql.cnf
RUN rm -rf /var/lib/apt/lists/*
### STAGE 2: Build ###
FROM $REPO_RUN:$REPO_RUN_TAG as builder
ARG BUILD_PATH
ARG SRC_PATH
ENV BUILD_PATH=${BUILD_PATH}
COPY --from=base /app/onlyoffice/config/*.json /app/onlyoffice/config/
COPY --from=base /app/onlyoffice/config/*.config /app/onlyoffice/config/
ENV SRC_PATH=${SRC_PATH}
# add defualt user and group for no-root run
RUN mkdir -p /var/log/onlyoffice && \
RUN echo "nameserver 8.8.8.8" | tee /etc/resolv.conf > /dev/null && \
mkdir -p /var/log/onlyoffice && \
mkdir -p /app/onlyoffice/data && \
addgroup --system --gid 107 onlyoffice && \
adduser -uid 104 --quiet --home /var/www/onlyoffice --system --gid 107 onlyoffice && \
chown onlyoffice:onlyoffice /app/onlyoffice -R && \
chown onlyoffice:onlyoffice /var/log -R && \
chown onlyoffice:onlyoffice /var/www -R && \
apt-get -y update && \
apt-get -y upgrade && \
apt-get install -yq sudo nano curl vim python3-pip && \
apt-get install -yq libgdiplus && \
pip3 install --upgrade jsonpath-ng multipledispatch
COPY --from=base --chown=onlyoffice:onlyoffice /app/onlyoffice/config/* /app/onlyoffice/config/
#USER onlyoffice
EXPOSE 5050
ENTRYPOINT ["python3", "docker-entrypoint.py"]
FROM node:14-slim as nodeBuild
ARG BUILD_PATH
ARG SRC_PATH
ENV BUILD_PATH=${BUILD_PATH}
ENV SRC_PATH=${SRC_PATH}
RUN echo "nameserver 8.8.8.8" | tee /etc/resolv.conf > /dev/null && \
mkdir -p /var/log/onlyoffice && \
mkdir -p /app/onlyoffice/data && \
addgroup --system --gid 107 onlyoffice && \
adduser -uid 104 --quiet --home /var/www/onlyoffice --system --gid 107 onlyoffice && \
chown onlyoffice:onlyoffice /app/onlyoffice -R && \
chown onlyoffice:onlyoffice /var/log -R && \
chown onlyoffice:onlyoffice /var/www -R
RUN echo "nameserver 8.8.8.8" | tee /etc/resolv.conf > /dev/null && \
chown onlyoffice:onlyoffice /var/www -R && \
apt-get -y update && \
apt-get -y upgrade && \
apt-get install -yq sudo nano curl vim && \
curl -fsSL https://deb.nodesource.com/setup_14.x | sudo -E bash - && \
apt-get install -y nodejs && \
apt-get install -yq libgdiplus
#USER onlyoffice
apt-get install -yq sudo nano curl vim python3-pip && \
pip3 install --upgrade jsonpath-ng multipledispatch
COPY --from=base --chown=onlyoffice:onlyoffice /app/onlyoffice/config/* /app/onlyoffice/config/
EXPOSE 5050
ENTRYPOINT ["./docker-entrypoint.sh"]
### STAGE 3: Run ###
ENTRYPOINT ["python3", "docker-entrypoint.py"]
## Nginx image ##
FROM nginx AS web
@ -139,42 +158,52 @@ RUN chown nginx:nginx /etc/nginx/* -R && \
sed -i 's/localhost:5003/$service_studio/' /etc/nginx/conf.d/onlyoffice.conf && \
sed -i 's/localhost:5023/$service_calendar/' /etc/nginx/conf.d/onlyoffice.conf && \
sed -i 's/localhost:9899/$service_socket/' /etc/nginx/conf.d/onlyoffice.conf && \
sed -i 's/localhost:9834/$service_sso/' /etc/nginx/conf.d/onlyoffice.conf && \
sed -i 's/localhost:5022/$service_mail/' /etc/nginx/conf.d/onlyoffice.conf && \
sed -i 's/localhost:9999/$service_urlshortener/' /etc/nginx/conf.d/onlyoffice.conf && \
sed -i 's/172.*/$document_server;/' /etc/nginx/conf.d/onlyoffice.conf
## ASC.ApiSystem ##
FROM builder AS api_system
WORKDIR ${BUILD_PATH}/services/apisystem/
## ASC.Webhooks.Service ##
FROM builder AS webhooks-wervice
WORKDIR ${BUILD_PATH}/services/ASC.Webhooks.Service/
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.sh .
COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.ApiSystem/service .
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.py ./docker-entrypoint.py
COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.Webhooks.Service/ .
CMD ["ASC.ApiSystem.dll", "ASC.ApiSystem"]
CMD ["ASC.Webhooks.Service.dll", "ASC.Webhooks.Service"]
## ASC.ClearEvents ##
FROM builder AS clear-events
WORKDIR ${BUILD_PATH}/services/ASC.ClearEvents/
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.py ./docker-entrypoint.py
COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.ClearEvents/ .
CMD ["ASC.ClearEvents.dll", "ASC.ClearEvents"]
## ASC.Data.Backup.BackgroundTasks ##
FROM builder AS backup_background
WORKDIR ${BUILD_PATH}/services/ASC.Data.Backup.BackgroundTasks/
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.py ./docker-entrypoint.py
COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.Data.Backup.BackgroundTasks/ .
CMD ["ASC.Data.Backup.BackgroundTasks.dll", "ASC.Data.Backup.BackgroundTasks"]
## ASC.Data.Backup ##
FROM builder AS backup
WORKDIR ${BUILD_PATH}/services/backup/
WORKDIR ${BUILD_PATH}/services/ASC.Data.Backup/
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.sh .
COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.Data.Backup/service .
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.py ./docker-entrypoint.py
COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.Data.Backup/service/ .
CMD ["ASC.Data.Backup.dll", "ASC.Data.Backup", "core:products:folder=/var/www/products/", "core:products:subfolder=server"]
## ASC.Data.Storage.Encryption ##
FROM builder AS data_storage_encryption
WORKDIR ${BUILD_PATH}/services/storage.encryption/
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.sh .
COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.Data.Storage.Encryption/service/ .
CMD ["ASC.Data.Storage.Encryption.dll", "ASC.Data.Storage.Encryption"]
CMD ["ASC.Data.Backup.dll", "ASC.Data.Backup"]
## ASC.Files ##
FROM builder AS files
WORKDIR ${BUILD_PATH}/products/ASC.Files/server/
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.sh .
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.py ./docker-entrypoint.py
COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/products/ASC.Files/server/ .
CMD ["ASC.Files.dll", "ASC.Files"]
@ -183,113 +212,91 @@ CMD ["ASC.Files.dll", "ASC.Files"]
FROM builder AS files_services
WORKDIR ${BUILD_PATH}/products/ASC.Files/service/
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.sh .
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.py ./docker-entrypoint.py
COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.Files.Service/service/ .
CMD ["ASC.Files.Service.dll", "ASC.Files.Service", "core:products:folder=/var/www/products/", "core:products:subfolder=server", "disable_elastic=true"]
## ASC.Data.Storage.Migration ##
FROM builder AS data_storage_migration
WORKDIR ${BUILD_PATH}/services/storage.migration/service/
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.sh .
COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.Data.Storage.Migration/service/ .
CMD ["ASC.Data.Storage.Migration.dll", "ASC.Data.Storage.Migration"]
CMD ["ASC.Files.Service.dll", "ASC.Files.Service"]
## ASC.Notify ##
FROM builder AS notify
WORKDIR ${BUILD_PATH}/services/notify/service
WORKDIR ${BUILD_PATH}/services/ASC.Notify/service
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.sh .
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.py ./docker-entrypoint.py
COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.Notify/service/ .
CMD ["ASC.Notify.dll", "ASC.Notify", "core:products:folder=/var/www/products/", "core:products:subfolder=server"]
CMD ["ASC.Notify.dll", "ASC.Notify"]
## ASC.People ##
FROM builder AS people_server
WORKDIR ${BUILD_PATH}/products/ASC.People/server/
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.sh .
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.py ./docker-entrypoint.py
COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/products/ASC.People/server/ .
CMD ["ASC.People.dll", "ASC.People"]
## ASC.Socket.IO.Svc ##
FROM builder AS socket
WORKDIR ${BUILD_PATH}/services/socket.io.svc/
## ASC.Socket.IO ##
FROM nodeBuild AS socket
WORKDIR ${BUILD_PATH}/services/ASC.Socket.IO/
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.sh .
COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.Socket.IO.Svc/service/ .
COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.Socket.IO/service/ ${BUILD_PATH}/ASC.Socket.IO/
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.py ./docker-entrypoint.py
COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.Socket.IO/service/ .
CMD ["ASC.Socket.IO.Svc.dll", "ASC.Socket.IO.Svc"]
CMD ["server.js", "ASC.Socket.IO"]
## ASC.Studio.Notify ##
FROM builder AS studio_notify
WORKDIR ${BUILD_PATH}/services/studio.notify/service/
WORKDIR ${BUILD_PATH}/services/ASC.Studio.Notify/service/
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.sh .
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.py ./docker-entrypoint.py
COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.Studio.Notify/service/ .
CMD ["ASC.Studio.Notify.dll", "ASC.Studio.Notify", "core:products:folder=/var/www/products/", "core:products:subfolder=server"]
CMD ["ASC.Studio.Notify.dll", "ASC.Studio.Notify"]
## ASC.TelegramService ##
FROM builder AS telegram_service
WORKDIR ${BUILD_PATH}/services/telegram/
WORKDIR ${BUILD_PATH}/services/ASC.TelegramService/
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.sh .
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.py ./docker-entrypoint.py
COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.TelegramService/service/ .
CMD ["ASC.TelegramService.dll", "ASC.TelegramService"]
## ASC.Thumbnails.Svc ##
FROM builder AS thumbnails
WORKDIR ${BUILD_PATH}/services/thumb/service/
## ASC.UrlShortener ##
FROM nodeBuild AS urlshortener
WORKDIR ${BUILD_PATH}/services/ASC.UrlShortener/service/
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.sh .
COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.Thumbnails.Svc/service/ .
COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.Thumbnails/service/ ${BUILD_PATH}/services/thumb/client
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.py ./docker-entrypoint.py
COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.UrlShortener/service/ .
CMD ["ASC.Thumbnails.Svc.dll", "ASC.Thumbnails.Svc"]
## ASC.UrlShortener.Svc ##
FROM builder AS urlshortener
WORKDIR ${BUILD_PATH}/services/urlshortener/service/
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.sh .
COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.UrlShortener.Svc/service/ .
COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.UrlShortener/service/ ${BUILD_PATH}/services/urlshortener/client
CMD ["ASC.UrlShortener.Svc.dll", "ASC.UrlShortener.Svc"]
CMD ["index.js", "ASC.UrlShortener"]
## ASC.Web.Api ##
FROM builder AS api
WORKDIR ${BUILD_PATH}/studio/api/
WORKDIR ${BUILD_PATH}/studio/ASC.Web.Api/
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.sh .
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.py ./docker-entrypoint.py
COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.Web.Api/service/ .
CMD ["ASC.Web.Api.dll", "ASC.Web.Api"]
## ASC.Web.Studio ##
FROM builder AS studio
WORKDIR ${BUILD_PATH}/studio/server/
WORKDIR ${BUILD_PATH}/studio/ASC.Web.Studio/
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.sh .
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.py ./docker-entrypoint.py
COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.Web.Studio/service/ .
CMD ["ASC.Web.Studio.dll", "ASC.Web.Studio"]
## ASC.SsoAuth ##
FROM builder AS ssoauth
WORKDIR ${BUILD_PATH}/services/ASC.SsoAuth.Svc/
FROM nodeBuild AS ssoauth
WORKDIR ${BUILD_PATH}/services/ASC.SsoAuth/
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.sh .
COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.SsoAuth.Svc/service/ .
COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.SsoAuth/service/ ${BUILD_PATH}/ASC.SsoAuth/
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.py ./docker-entrypoint.py
COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.SsoAuth/service/ .
CMD ["ASC.SsoAuth.Svc.dll", "ASC.SsoAuth.Svc"]
CMD ["app.js", "ASC.SsoAuth"]
## image for k8s bin-share ##
FROM busybox:latest AS bin_share
@ -305,10 +312,6 @@ RUN mkdir -p /app/appserver/ASC.Files/server && \
COPY bin-share-docker-entrypoint.sh /app/docker-entrypoint.sh
COPY --from=base /var/www/products/ASC.Files/server/ /app/appserver/ASC.Files/server/
COPY --from=base /var/www/products/ASC.People/server/ /app/appserver/ASC.People/server/
# COPY --from=base /var/www/products/ASC.CRM/server/ /app/appserver/ASC.CRM/server/
# COPY --from=base /var/www/products/ASC.Projects/server/ /app/appserver/ASC.Projects/server/
# COPY --from=base /var/www/products/ASC.Calendar/server/ /app/appserver/ASC.Calendar/server/
# COPY --from=base /var/www/products/ASC.Mail/server/ /app/appserver/ASC.Mail/server/
ENTRYPOINT ["./app/docker-entrypoint.sh"]
## image for k8s wait-bin-share ##

View File

@ -49,22 +49,12 @@ services:
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-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}"
@ -74,11 +64,6 @@ services:
<<: *x-service-base
image: "${REPO}/${STATUS}appserver-files-services:${DOCKER_TAG}"
container_name: ${FILES_SERVICES_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
@ -103,13 +88,13 @@ services:
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-thumbnails:
# <<: *x-service-base
# image: "${REPO}/${STATUS}appserver-thumbnails:${DOCKER_TAG}"
# container_name: ${THUMBNAILS_HOST}
# expose:
# - ${SERVICE_PORT}
# - "9800"
onlyoffice-urlshortener:
<<: *x-service-base
@ -148,28 +133,22 @@ services:
ports:
- 8092:8092
depends_on:
- onlyoffice-api-system
- onlyoffice-backup
- onlyoffice-storage-encryption
- onlyoffice-files
- onlyoffice-files-services
- onlyoffice-storage-migration
- onlyoffice-people-server
- onlyoffice-socket
- onlyoffice-studio-notify
- onlyoffice-telegram-service
- onlyoffice-thumbnails
# - onlyoffice-thumbnails
- onlyoffice-urlshortener
- onlyoffice-api
- onlyoffice-studio
- onlyoffice-ssoauth
environment:
- SERVICE_API_SYSTEM=${SERVICE_API_SYSTEM}
- SERVICE_BACKUP=${SERVICE_BACKUP}
- SERVICE_STORAGE_ENCRYPTION=${SERVICE_STORAGE_ENCRYPTION}
- SERVICE_FILES=${SERVICE_FILES}
- SERVICE_FILES_SERVICES=${SERVICE_FILES_SERVICES}
- SERVICE_STORAGE_MIGRATION=${SERVICE_STORAGE_MIGRATION}
- SERVICE_NOTIFY=${SERVICE_NOTIFY}
- SERVICE_PEOPLE_SERVER=${SERVICE_PEOPLE_SERVER}
- SERVICE_SOCKET=${SERVICE_SOCKET}

View File

@ -1,13 +1,27 @@
version: "3.8"
services:
onlyoffice-api-system:
onlyoffice-backup-background-tasks:
build:
context: ./
dockerfile: "${DOCKERFILE}"
target: api_system
image: "${REPO}/${STATUS}appserver-api-system:${DOCKER_TAG}"
target: backup_background
image: "${REPO}/${STATUS}appserver-backup-background:${DOCKER_TAG}"
onlyoffice-clear-events:
build:
context: ./
dockerfile: "${DOCKERFILE}"
target: clear-events
image: "${REPO}/${STATUS}appserver-clear-events:${DOCKER_TAG}"
onlyoffice-webhooks-wervice:
build:
context: ./
dockerfile: "${DOCKERFILE}"
target: webhooks-wervice
image: "${REPO}/${STATUS}appserver-webhooks-wervice:${DOCKER_TAG}"
onlyoffice-backup:
build:
context: ./
@ -15,13 +29,6 @@ services:
target: backup
image: "${REPO}/${STATUS}appserver-backup:${DOCKER_TAG}"
onlyoffice-storage-encryption:
build:
context: ./
dockerfile: "${DOCKERFILE}"
target: data_storage_encryption
image: "${REPO}/${STATUS}appserver-storage-encryption:${DOCKER_TAG}"
onlyoffice-files:
build:
context: ./
@ -36,13 +43,6 @@ services:
target: files_services
image: "${REPO}/${STATUS}appserver-files-services:${DOCKER_TAG}"
onlyoffice-storage-migration:
build:
context: ./
dockerfile: "${DOCKERFILE}"
target: data_storage_migration
image: "${REPO}/${STATUS}appserver-storage-migration:${DOCKER_TAG}"
onlyoffice-notify:
build:
context: ./
@ -78,13 +78,6 @@ services:
target: telegram_service
image: "${REPO}/${STATUS}appserver-telegram-service:${DOCKER_TAG}"
onlyoffice-thumbnails:
build:
context: ./
dockerfile: "${DOCKERFILE}"
target: thumbnails
image: "${REPO}/${STATUS}appserver-thumbnails:${DOCKER_TAG}"
onlyoffice-urlshortener:
build:
context: ./

View File

@ -95,6 +95,11 @@ map $SERVICE_STUDIO $service_studio {
$SERVICE_STUDIO $SERVICE_STUDIO;
}
map $SERVICE_SSOAUTH $service_sso {
volatile;
$SERVICE_SSOAUTH $SERVICE_SSOAUTH;
}
map $DOCUMENT_SERVER $document_server {
volatile;
$DOCUMENT_SERVER $DOCUMENT_SERVER;

View File

@ -0,0 +1,171 @@
import json, sys, os
from jsonpath_ng import jsonpath, parse
from os import environ
from multipledispatch import dispatch
filePath = None
saveFilePath = None
jsonValue = None
PRODUCT = os.environ["PRODUCT"] if environ.get("PRODUCT") else "onlyoffice"
BASE_DIR = os.environ["BASE_DIR"] if environ.get("BASE_DIR") else "/app/" + PRODUCT
ENV_EXTENSION = os.environ["ENV_EXTENSION"] if environ.get("ENV_EXTENSION") else "none"
PROXY_HOST = os.environ["PROXY_HOST"] if environ.get("PROXY_HOST") else "proxy"
SERVICE_PORT = os.environ["SERVICE_PORT"] if environ.get("SERVICE_PORT") else "5050"
URLS = os.environ["URLS"] if environ.get("URLS") else "http://0.0.0.0:"
PATH_TO_CONF = os.environ["PATH_TO_CONF"] if environ.get("PATH_TO_CONF") else "/app/" + PRODUCT + "/config"
LOG_DIR = os.environ["LOG_DIR"] if environ.get("LOG_DIR") else "/var/log/" + PRODUCT
ROUTER_HOST = os.environ["ROUTER_HOST"] if environ.get("ROUTER_HOST") else "localhost"
MYSQL_HOST = os.environ["MYSQL_HOST"] if environ.get("MYSQL_HOST") else "localhost"
MYSQL_DATABASE = os.environ["MYSQL_DATABASE"] if environ.get("MYSQL_DATABASE") else "onlyoffice"
MYSQL_USER = os.environ["MYSQL_USER"] if environ.get("MYSQL_USER") else "onlyoffice_user"
MYSQL_PASSWORD = os.environ["MYSQL_PASSWORD"] if environ.get("MYSQL_PASSWORD") else "onlyoffice_pass"
DATABASE_MIGRATION = os.environ["DATABASE_MIGRATION"] if environ.get("DATABASE_MIGRATION") else "false"
APP_CORE_BASE_DOMAIN = os.environ["APP_CORE_BASE_DOMAIN"] if environ.get("APP_CORE_BASE_DOMAIN") else "localhost"
APP_CORE_MACHINEKEY = os.environ["APP_CORE_MACHINEKEY"] if environ.get("APP_CORE_MACHINEKEY") else "your_core_machinekey"
APP_URL_PORTAL = os.environ["APP_URL_PORTAL"] if environ.get("APP_URL_PORTAL") else "http://" + ROUTER_HOST + ":8092"
APP_STORAGE_ROOT = os.environ["APP_STORAGE_ROOT"] if environ.get("APP_STORAGE_ROOT") else BASE_DIR + "/data/"
DOCUMENT_SERVER_JWT_SECRET = os.environ["DOCUMENT_SERVER_JWT_SECRET"] if environ.get("DOCUMENT_SERVER_JWT_SECRET") else "your_jwt_secret"
DOCUMENT_SERVER_JWT_HEADER = os.environ["DOCUMENT_SERVER_JWT_HEADER"] if environ.get("DOCUMENT_SERVER_JWT_HEADER") else "AuthorizationJwt"
DOCUMENT_SERVER_URL_PUBLIC = os.environ["DOCUMENT_SERVER_URL_PUBLIC"] if environ.get("DOCUMENT_SERVER_URL_PUBLIC") else "/ds-vpath/"
DOCUMENT_SERVER_URL_INTERNAL = os.environ["DOCUMENT_SERVER_URL_INTERNAL"] if environ.get("DOCUMENT_SERVER_URL_INTERNAL") else "http://onlyoffice-document-server/"
ELK_SHEME = os.environ["ELK_SHEME"] if environ.get("ELK_SHEME") else "http"
ELK_HOST = os.environ["ELK_HOST"] if environ.get("ELK_HOST") else "onlyoffice-elasticsearch"
ELK_PORT = os.environ["ELK_PORT"] if environ.get("ELK_PORT") else "9200"
ELK_THREADS = os.environ["ELK_THREADS"] if environ.get("ELK_THREADS") else "1"
KAFKA_HOST = os.environ["KAFKA_HOST"] if environ.get("KAFKA_HOST") else "kafka:9092"
RUN_FILE = sys.argv[1] if sys.argv[1] else "none"
LOG_FILE = sys.argv[2] if sys.argv[2] else "none"
class RunServices:
def __init__(self, SERVICE_PORT, PATH_TO_CONF):
self.SERVICE_PORT = SERVICE_PORT
self.PATH_TO_CONF = PATH_TO_CONF
@dispatch(str)
def RunService(self, RUN_FILE):
os.system("node " + RUN_FILE + " --app.port=" + self.SERVICE_PORT +\
" --app.appsettings=" + self.PATH_TO_CONF)
return 1
@dispatch(str, str)
def RunService(self, RUN_FILE, ENV_EXTENSION):
if ENV_EXTENSION == "none":
self.RunService(RUN_FILE)
os.system("node " + RUN_FILE + " --app.port=" + self.SERVICE_PORT +\
" --app.appsettings=" + self.PATH_TO_CONF +\
" --app.environment=" + ENV_EXTENSION)
return 1
@dispatch(str, str, str)
def RunService(self, RUN_FILE, ENV_EXTENSION, LOG_FILE):
data = RUN_FILE.split(".")
if data[-1] != "dll":
self.RunService(RUN_FILE, ENV_EXTENSION)
elif ENV_EXTENSION == "none":
os.system("dotnet " + RUN_FILE + " --urls=" + URLS + self.SERVICE_PORT +\
" --$STORAGE_ROOT=" + APP_STORAGE_ROOT +\
" --pathToConf=" + self.PATH_TO_CONF +\
" --log:dir=" + LOG_DIR +\
" --log:name=" + LOG_FILE +\
" core:products:folder=/var/www/products/" +\
" core:products:subfolder=server")
else:
os.system("dotnet " + RUN_FILE + " --urls=" + URLS + self.SERVICE_PORT +\
" --$STORAGE_ROOT=" + APP_STORAGE_ROOT +\
" --pathToConf=" + self.PATH_TO_CONF +\
" --log:dir=" + LOG_DIR +\
" --log:name=" + LOG_FILE +\
" --ENVIRONMENT=" + ENV_EXTENSION +\
" core:products:folder=/var/www/products/" +\
" core:products:subfolder=server")
def openJsonFile(filePath):
try:
with open(filePath, 'r') as f:
return json.load(f)
except FileNotFoundError as e:
return False
except IOError as e:
return False
def parseJsonValue(jsonValue):
data = jsonValue.split("=")
data[0] = "$." + data[0].strip()
data[1] = data[1].replace(" ", "")
return data
def updateJsonData(jsonData, jsonKey, jsonUpdateValue):
jsonpath_expr = parse(jsonKey)
jsonpath_expr.find(jsonData)
jsonpath_expr.update(jsonData, jsonUpdateValue)
return jsonData
def writeJsonFile(jsonFile, jsonData, indent=4):
with open(jsonFile, 'w') as f:
f.write(json.dumps(jsonData, ensure_ascii=False, indent=indent))
return 1
#filePath = sys.argv[1]
saveFilePath = filePath
#jsonValue = sys.argv[2]
filePath = "/app/onlyoffice/config/appsettings.json"
jsonData = openJsonFile(filePath)
#jsonUpdateValue = parseJsonValue(jsonValue)
updateJsonData(jsonData, "$.ConnectionStrings.default.connectionString", "Server="+ MYSQL_HOST +";Port=3306;Database="+ MYSQL_DATABASE +";User ID="+ MYSQL_USER +";Password="+ MYSQL_PASSWORD +";Pooling=true;Character Set=utf8;AutoEnlist=false;SSL Mode=none;ConnectionReset=false",)
updateJsonData(jsonData,"$.core.base-domain", APP_CORE_BASE_DOMAIN)
updateJsonData(jsonData,"$.core.machinekey", APP_CORE_MACHINEKEY)
updateJsonData(jsonData,"$.core.products.subfolder", "server")
updateJsonData(jsonData,"$.web.hub.internal", "http://onlyoffice-socket:" + SERVICE_PORT + "/")
updateJsonData(jsonData,"$.web.url-shortener.internal", "http://onlyoffice-urlshortener:" + SERVICE_PORT + "/")
updateJsonData(jsonData,"$.files.docservice.url.portal", APP_URL_PORTAL)
updateJsonData(jsonData,"$.files.docservice.url.public", DOCUMENT_SERVER_URL_PUBLIC)
updateJsonData(jsonData,"$.files.docservice.url.internal", DOCUMENT_SERVER_URL_INTERNAL)
updateJsonData(jsonData,"$.files.docservice.secret.value", DOCUMENT_SERVER_JWT_SECRET)
updateJsonData(jsonData,"$.files.docservice.secret.header", DOCUMENT_SERVER_JWT_HEADER)
updateJsonData(jsonData,"$.migration.enabled", DATABASE_MIGRATION)
writeJsonFile(filePath, jsonData)
filePath = "/app/onlyoffice/config/elastic.json"
jsonData = openJsonFile(filePath)
updateJsonData(jsonData,"$.elastic.Scheme", ELK_SHEME)
updateJsonData(jsonData,"$.elastic.Host", ELK_HOST)
updateJsonData(jsonData,"$.elastic.Port", ELK_PORT)
updateJsonData(jsonData,"$.elastic.Threads", ELK_THREADS)
writeJsonFile(filePath, jsonData)
filePath = "/app/onlyoffice/config/kafka.json"
jsonData = openJsonFile(filePath)
jsonData.update({"kafka": {"BootstrapServers": KAFKA_HOST}})
writeJsonFile(filePath, jsonData)
filePath = "/app/onlyoffice/config/socket.json"
jsonData = openJsonFile(filePath)
updateJsonData(jsonData,"$.socket.port", SERVICE_PORT)
writeJsonFile(filePath, jsonData)
filePath = "/app/onlyoffice/config/ssoauth.json"
jsonData = openJsonFile(filePath)
updateJsonData(jsonData,"$.ssoauth.port", SERVICE_PORT)
writeJsonFile(filePath, jsonData)
filePath = "/app/onlyoffice/config/rabbitmq.json"
jsonData = openJsonFile(filePath)
updateJsonData(jsonData,"$.RabbitMQ.Hostname", "onlyoffice-rebbitmq")
writeJsonFile(filePath, jsonData)
filePath = "/app/onlyoffice/config/redis.json"
jsonData = openJsonFile(filePath)
updateJsonData(jsonData,"$.Redis.Hosts.[0].Host", "onlyoffice-redis")
writeJsonFile(filePath, jsonData)
run = RunServices(SERVICE_PORT, PATH_TO_CONF)
run.RunService(RUN_FILE, ENV_EXTENSION, LOG_FILE)

View File

@ -1,33 +1,38 @@
#!/bin/bash
#!/bin/bash
PARAMETERS=${PARAMETERS:-""}
# read parameters
if [ -n "$1" ]; then
DOTNET_RUN="${1}";
RUN_COMMAND="${1}";
shift
fi
if [ -n "$1" ]; then
DOTNET_LOG_NAME="${1}";
RUN_FILE="${1}";
shift
fi
if [ -n "$1" ]; then
NAME_SERVICE="${1}";
shift
fi
while [ "$1" != "" ]; do
PARAMETERS="$PARAMETERS --${1}";
PARAMETERS="$PARAMETERS ${1}";
echo $PARAMETERS
shift
done
echo "#-------------------------------------#"
echo "Run ${DOTNET_RUN}"
echo "#-------------------------------------#"
echo "Executing -- ${NAME_SERVICE}"
PRODUCT=${PRODUCT:-"onlyoffice"}
BASE_DIR="/app/${PRODUCT}"
ENV_EXTENSION=${ENV_EXTENSION:-"test"}
PROXY_HOST=${PROXY_HOST:-"proxy"}
SHEME=${SHEME:-"http"}
SERVICE_PORT=${SERVICE_PORT:-"5050"}
URLS=${URLS:-"${SHEME}://0.0.0.0:${SERVICE_PORT}"}
PATH_TO_CONF=${PATH_TO_CONF:-"${BASE_DIR}/config"}
PATH_TO_CONF=${PATH_TO_CONF:-"/app/${PRODUCT}/config"}
LOG_DIR=${LOG_DIR:-"/var/log/${PRODUCT}"}
MYSQL_HOST=${MYSQL_HOST:-"mysql-server"}
@ -35,7 +40,6 @@ MYSQL_DATABASE=${MYSQL_DATABASE:-${PRODUCT}}
MYSQL_USER=${MYSQL_USER:-"${PRODUCT}_user"}
MYSQL_PASSWORD=${MYSQL_PASSWORD:-"${PRODUCT}_pass"}
APP_DOTNET_ENV=${APP_DOTNET_ENV:-"test"}
APP_CORE_BASE_DOMAIN=${APP_CORE_BASE_DOMAIN:-"localhost"}
APP_URL_PORTAL=${APP_URL_PORTAL:-"${SHEME}://${PROXY_HOST}:8092"}
@ -56,23 +60,53 @@ KAFKA_HOST=${KAFKA_HOST:-"kafka"}":9092"
APP_STORAGE_ROOT=${APP_STORAGE_ROOT:-"${BASE_DIR}/data/"}
sed -i "s!Server=.*;Pooling=!Server=${MYSQL_HOST};Port=3306;Database=${MYSQL_DATABASE};User ID=${MYSQL_USER};Password=${MYSQL_PASSWORD};Pooling=!g" ${PATH_TO_CONF}/appsettings.${APP_DOTNET_ENV}.json
sed -i "s!\"base-domain\".*,!\"base-domain\": \"${APP_CORE_BASE_DOMAIN}\",!g" ${PATH_TO_CONF}/appsettings.${APP_DOTNET_ENV}.json
sed -i "s!\"machinekey\".*,!\"machinekey\": \"${APP_CORE_MACHINEKEY}\",!g" ${PATH_TO_CONF}/appsettings.${APP_DOTNET_ENV}.json
sed -i "s!\"public\".*,!\"public\": \"${DOCUMENT_SERVER_URL_PUBLIC}\",!g" ${PATH_TO_CONF}/appsettings.${APP_DOTNET_ENV}.json
sed -i "s!\"internal\".*,!\"internal\": \"${DOCUMENT_SERVER_URL_INTERNAL}\",!g" ${PATH_TO_CONF}/appsettings.${APP_DOTNET_ENV}.json
sed -i "s!\"portal\".*!\"portal\": \"${APP_URL_PORTAL}\",!g" ${PATH_TO_CONF}/appsettings.${APP_DOTNET_ENV}.json
sed -i "0,/\"value\"/s!\"value\".*,!\"value\": \"${DOCUMENT_SERVER_JWT_SECRET}\",!" ${PATH_TO_CONF}/appsettings.${APP_DOTNET_ENV}.json
sed -i "s!\"header\".*!\"header\": \"${DOCUMENT_SERVER_JWT_HEADER}\"!" ${PATH_TO_CONF}/appsettings.${APP_DOTNET_ENV}.json
sed -i "s!\"core\".*{!\"migration\": {\n\"enabled\": \"${DATABASE_MIGRATION}\"\n},\n\"core\": {!g" ${PATH_TO_CONF}/appsettings.${APP_DOTNET_ENV}.json
# function modifyJsonConfigFile {
# if [ -f $1 ]
# then
# pathToJsonConfig=$1
# else
# echo "Can't find configure file $1"
# return $?
# fi
# for i in ${!arrayJsonConfig[@]}; do
# python appsettings-jsonpath.py "${pathToJsonConfig}" "${arrayJsonConfig[$i]}"
# done
# return 1
# }
# arrayJsonConfig=("ConnectionStrings.default.connectionString = Server=${MYSQL_HOST};\
# Port=3306;\
# Database=${MYSQL_DATABASE};\
# User ID=${MYSQL_USER};\
# Password=${MYSQL_PASSWORD};\
# Pooling=true;\
# Character Set=utf8;\
# AutoEnlist=false;\
# SSL Mode=none;\
# AllowPublicKeyRetrieval=True;\
# ConnectionReset=false")
# modifyJsonConfigFile ${PATH_TO_CONF}/appsettings.json
sed -i "s!Server=.*;Pooling=!Server=${MYSQL_HOST};Port=3306;Database=${MYSQL_DATABASE};User ID=${MYSQL_USER};Password=${MYSQL_PASSWORD};Pooling=!g" ${PATH_TO_CONF}/appsettings.${ENV_EXTENSION}.json
sed -i "s!\"base-domain\".*,!\"base-domain\": \"${APP_CORE_BASE_DOMAIN}\",!g" ${PATH_TO_CONF}/appsettings.${ENV_EXTENSION}.json
sed -i "s!\"machinekey\".*,!\"machinekey\": \"${APP_CORE_MACHINEKEY}\",!g" ${PATH_TO_CONF}/appsettings.${ENV_EXTENSION}.json
sed -i "s!\"public\".*,!\"public\": \"${DOCUMENT_SERVER_URL_PUBLIC}\",!g" ${PATH_TO_CONF}/appsettings.${ENV_EXTENSION}.json
sed -i "s!\"internal\".*,!\"internal\": \"${DOCUMENT_SERVER_URL_INTERNAL}\",!g" ${PATH_TO_CONF}/appsettings.${ENV_EXTENSION}.json
sed -i "s!\"portal\".*!\"portal\": \"${APP_URL_PORTAL}\",!g" ${PATH_TO_CONF}/appsettings.${ENV_EXTENSION}.json
sed -i "0,/\"value\"/s!\"value\".*,!\"value\": \"${DOCUMENT_SERVER_JWT_SECRET}\",!" ${PATH_TO_CONF}/appsettings.${ENV_EXTENSION}.json
sed -i "s!\"header\".*!\"header\": \"${DOCUMENT_SERVER_JWT_HEADER}\"!" ${PATH_TO_CONF}/appsettings.${ENV_EXTENSION}.json
sed -i "s!\"core\".*{!\"migration\": {\n\"enabled\": \"${DATABASE_MIGRATION}\"\n},\n\"core\": {!g" ${PATH_TO_CONF}/appsettings.${ENV_EXTENSION}.json
sed -i "s!\"Scheme\".*!\"Scheme\": \"${ELK_SHEME}\",!g" ${PATH_TO_CONF}/elastic.json
sed -i "s!\"Host\".*!\"Host\": \"${ELK_HOST}\",!g" ${PATH_TO_CONF}/elastic.json
sed -i "s!\"Port\".*!\"Port\": \"${ELK_PORT}\",!g" ${PATH_TO_CONF}/elastic.json
sed -i "s!\"Threads\".*!\"Threads\": \"${ELK_THREADS}\"!g" ${PATH_TO_CONF}/elastic.json
sed -i "s!\"subfolder\".*!\"subfolder\": \"server\",!g" ${PATH_TO_CONF}/appsettings.services.json
sed -i "s!\"BootstrapServers\".*!\"BootstrapServers\": \"${KAFKA_HOST}\"!g" ${PATH_TO_CONF}/kafka.${APP_DOTNET_ENV}.json
#sed -i "s!\"subfolder\".*!\"subfolder\": \"server\",!g" ${PATH_TO_CONF}/appsettings.services.json
sed -i "s!\"BootstrapServers\".*!\"BootstrapServers\": \"${KAFKA_HOST}\"!g" ${PATH_TO_CONF}/kafka.${ENV_EXTENSION}.json
sed -i "s!\"path\".*!\"path\": \"../../ASC.Socket.IO\"!g" ${PATH_TO_CONF}/socket.${APP_DOTNET_ENV}.json

View File

@ -6,4 +6,6 @@ docker-compose -f build.yml build \
--build-arg PRODUCT_VERSION=$PRODUCT_VERSION \
--build-arg BUILD_NUMBER=$BUILD_NUMBER \
--build-arg BUILD_ARGS=$BUILD_ARGS \
--build-arg DEPLOY_ARGS=$DEPLOY_ARGS
--build-arg DEPLOY_ARGS=$DEPLOY_ARGS \
--build-arg REPO_SDK_TAG=$REPO_SDK_TAG \
--build-arg REPO_RUN_TAG=$REPO_RUN_TAG

View File

@ -0,0 +1,21 @@
version: '3'
services:
onlyoffice-redis:
image: redis:7
container_name: onlyoffice-redis
restart: always
expose:
- "6379"
onlyoffice-rebbitmq:
image: rabbitmq:3
container_name: onlyoffice-rebbitmq
restart: always
expose:
- "5672"
- "80"
networks:
default:
external:
name: ${NETWORK_NAME}

View File

@ -1,6 +1,6 @@
{
"ssoauth": {
"path": "../../ASC.SsoAuth",
"port": "9834",
"port": "9834"
}
}
}