Merge branch 'develop' into feature/pool-context

This commit is contained in:
pavelbannov 2022-08-01 11:49:11 +03:00
commit b03f8bc1dc
20 changed files with 156 additions and 63 deletions

View File

@ -42,8 +42,8 @@ done
echo "== BACK-END-BUILD =="
cd ${SRC_PATH}
dotnet build ASC.Web.slnf ${ARGS}
dotnet build ASC.Web.slnf ${ARGS}
dotnet build ASC.Migrations.sln -o ${SRC_PATH}/ASC.Migration.Runner/service/
# Array of names backend services in directory common (Nodejs)
services_name_backend_nodejs=()

View File

@ -66,7 +66,9 @@
API_HOST=${CONTAINER_PREFIX}api
STUDIO_HOST=${CONTAINER_PREFIX}studio
SSOAUTH_HOST=${CONTAINER_PREFIX}ssoauth
MIGRATION_RUNNER_HOST=${CONTAINER_PREFIX}migration-runner
PROXY_HOST=${CONTAINER_PREFIX}proxy
DOCEDITOR_HOST=${CONTAINER_PREFIX}doceditor
# proxy upstream environment #
SERVICE_API_SYSTEM=${API_SYSTEM_HOST}:${SERVICE_PORT}
@ -88,5 +90,6 @@
SERVICE_API=${API_HOST}:${SERVICE_PORT}
SERVICE_STUDIO=${STUDIO_HOST}:${SERVICE_PORT}
SERVICE_SSOAUTH=${SSOAUTH_HOST}:${SERVICE_PORT}
SERVICE_DOCEDITOR=${DOCEDITOR_HOST}:5013
NETWORK_NAME=${PRODUCT}

View File

@ -1,21 +1,19 @@
ARG SRC_PATH=/app/onlyoffice/src
ARG BUILD_PATH=/var/www
ARG REPO_SDK=mcr.microsoft.com/dotnet/sdk
ARG REPO_SDK_TAG=6.0
ARG REPO_RUN=mcr.microsoft.com/dotnet/aspnet
ARG REPO_RUN_TAG=6.0
ARG SRC_PATH="/app/onlyoffice/src"
ARG BUILD_PATH="/var/www"
ARG DOTNET_SDK="mcr.microsoft.com/dotnet/sdk:6.0"
ARG DOTNET_RUN="mcr.microsoft.com/dotnet/aspnet:6.0"
FROM $REPO_SDK:$REPO_SDK_TAG AS base
FROM $DOTNET_SDK AS base
ARG RELEASE_DATE="2016-06-22"
ARG DEBIAN_FRONTEND=noninteractive
ARG PRODUCT_VERSION=0.0.0
ARG BUILD_NUMBER=0
ARG GIT_BRANCH=master
ARG GIT_BRANCH="master"
ARG SRC_PATH
ARG BUILD_PATH
ARG BUILD_ARGS=build
ARG DEPLOY_ARGS=deploy
ARG DEBUG_INFO=true
ARG BUILD_ARGS="build"
ARG DEPLOY_ARGS="deploy"
ARG DEBUG_INFO="true"
LABEL onlyoffice.appserver.release-date="${RELEASE_DATE}" \
maintainer="Ascensio System SIA <support@onlyoffice.com>"
@ -24,8 +22,7 @@ ENV LANG=en_US.UTF-8 \
LANGUAGE=en_US:en \
LC_ALL=en_US.UTF-8
RUN echo "nameserver 8.8.8.8" | tee /etc/resolv.conf > /dev/null && \
apt-get -y update && \
RUN apt-get -y update && \
apt-get -y upgrade && \
apt-get -y dist-upgrade && \
apt-get install -yq sudo locales && \
@ -67,15 +64,14 @@ COPY config/mysql/conf.d/mysql.cnf /etc/mysql/conf.d/mysql.cnf
RUN rm -rf /var/lib/apt/lists/*
FROM $REPO_RUN:$REPO_RUN_TAG as builder
FROM $DOTNET_RUN as builder
ARG BUILD_PATH
ARG SRC_PATH
ARG SRC_PATH
ENV BUILD_PATH=${BUILD_PATH}
ENV SRC_PATH=${SRC_PATH}
# add defualt user and group for no-root run
RUN echo "nameserver 8.8.8.8" | tee /etc/resolv.conf > /dev/null && \
mkdir -p /var/log/onlyoffice && \
RUN 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 && \
@ -100,8 +96,7 @@ 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 && \
RUN 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 && \
@ -127,8 +122,7 @@ ENV DNS_NAMESERVER=127.0.0.11 \
COUNT_WORKER_CONNECTIONS=$COUNT_WORKER_CONNECTIONS \
MAP_HASH_BUCKET_SIZE=""
RUN echo "nameserver 8.8.8.8" | tee /etc/resolv.conf > /dev/null && \
apt-get -y update && \
RUN apt-get -y update && \
apt-get -y upgrade && \
apt-get install -yq vim && \
# Remove default nginx website
@ -162,8 +156,17 @@ RUN chown nginx:nginx /etc/nginx/* -R && \
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/localhost:5034/$service_migration/' /etc/nginx/conf.d/onlyoffice.conf && \
sed -i 's/localhost:5013/$service_doceditor/' /etc/nginx/conf.d/onlyoffice.conf && \
sed -i 's/172.*/$document_server;/' /etc/nginx/conf.d/onlyoffice.conf
## Doceditor ##
FROM nodeBuild as doceditor
WORKDIR ${BUILD_PATH}/products/ASC.Files/editor
COPY --from=base --chown=onlyoffice:onlyoffice ${SRC_PATH}/build/deploy/editor/ .
EXPOSE 5013
ENTRYPOINT ["node", "server.js"]
## ASC.Data.Backup.BackgroundTasks ##
FROM builder AS backup_background
WORKDIR ${BUILD_PATH}/services/ASC.Data.Backup.BackgroundTasks/
@ -308,6 +311,18 @@ COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.Web.St
CMD ["ASC.Web.Studio.dll", "ASC.Web.Studio"]
## ASC.Migration.Runner ##
FROM $DOTNET_RUN AS onlyoffice-migration-runner
ARG BUILD_PATH
ARG SRC_PATH
ENV BUILD_PATH=${BUILD_PATH}
ENV SRC_PATH=${SRC_PATH}
WORKDIR ${BUILD_PATH}/services/ASC.Migration.Runner/
COPY ./docker-migration-entrypoint.sh ./docker-migration-entrypoint.sh
COPY --from=base ${SRC_PATH}/ASC.Migration.Runner/service/ .
ENTRYPOINT ["./docker-migration-entrypoint.sh"]
## image for k8s bin-share ##
FROM busybox:latest AS bin_share
RUN mkdir -p /app/appserver/ASC.Files/server && \

View File

@ -132,6 +132,13 @@ services:
image: "${REPO}/${STATUS}appserver-webhooks-service:${DOCKER_TAG}"
container_name: ${WEBHOOKS_SERVICE_HOST}
onlyoffice-doceditor:
image: "${REPO}/${STATUS}appserver-doceditor:${DOCKER_TAG}"
container_name: ${DOCEDITOR_HOST}
restart: always
expose:
- "5013"
onlyoffice-proxy:
image: "${REPO}/${STATUS}appserver-proxy:${DOCKER_TAG}"
container_name: ${PROXY_HOST}
@ -174,6 +181,7 @@ services:
- SERVICE_API=${SERVICE_API}
- SERVICE_STUDIO=${SERVICE_STUDIO}
- SERVICE_SSOAUTH=${SERVICE_SSOAUTH}
- SERVICE_DOCEDITOR=${SERVICE_DOCEDITOR}
- DOCUMENT_SERVER=${DOCUMENT_SERVER_HOST}
- SERVICE_PORT=${SERVICE_PORT}
volumes:

View File

@ -127,9 +127,23 @@ services:
target: wait_bin_share
image: "${REPO}/${STATUS}appserver-wait-bin-share:${DOCKER_TAG}"
onlyoffice-doceditor:
build:
context: ./
dockerfile: "${DOCKERFILE}"
target: doceditor
image: "${REPO}/${STATUS}appserver-doceditor:${DOCKER_TAG}"
onlyoffice-proxy:
build:
context: ./
dockerfile: "${DOCKERFILE}"
target: web
image: "${REPO}/${STATUS}appserver-proxy:${DOCKER_TAG}"
onlyoffice-migration-runner:
build:
context: ./
dockerfile: "${DOCKERFILE}"
target: onlyoffice-migration-runner
image: "${REPO}/${STATUS}appserver-migration-runner:${DOCKER_TAG}"

View File

@ -1,5 +1,10 @@
resolver $DNS_NAMESERVER valid=30s;
map $SERVICE_DOCEDITOR $service_doceditor {
volatile;
$SERVICE_DOCEDITOR $SERVICE_DOCEDITOR;
}
map $SERVICE_MIGRATION $service_migration {
volatile;
$SERVICE_MIGRATION $SERVICE_MIGRATION;

View File

@ -1,9 +1,7 @@
version: "3.8"
services:
onlyoffice-mysql-server:
image: mysql:${MYSQL_VERSION}
command: --default-authentication-plugin=mysql_native_password
cap_add:

View File

@ -0,0 +1,10 @@
#!/bin/bash
MYSQL_HOST=${MYSQL_HOST:-"localhost"}
MYSQL_DATABASE=${MYSQL_DATABASE:-"onlyoffice"}
MYSQL_USER=${MYSQL_USER:-"onlyoffice_user"}
MYSQL_PASSWORD=${MYSQL_PASSWORD:-"onlyoffice_pass"}
sed -i "s!\"ConnectionString\".*!\"ConnectionString\": \"Server=${MYSQL_HOST};Database=${MYSQL_DATABASE};User ID=${MYSQL_USER};Password=${MYSQL_PASSWORD}\",!g" ./appsettings.json
dotnet ASC.Migration.Runner.dll

View File

@ -7,5 +7,5 @@ docker-compose -f build.yml build \
--build-arg BUILD_NUMBER=$BUILD_NUMBER \
--build-arg BUILD_ARGS=$BUILD_ARGS \
--build-arg DEPLOY_ARGS=$DEPLOY_ARGS \
--build-arg REPO_SDK_TAG=$REPO_SDK_TAG \
--build-arg REPO_RUN_TAG=$REPO_RUN_TAG
--build-arg DOTNET_SDK=$DOTNET_SDK \
--build-arg DOTNET_RUN=$DOTNET_RUN

View File

@ -0,0 +1,17 @@
version: "3.8"
services:
onlyoffice-migration-runner:
image: "${REPO}/${STATUS}appserver-migration-runner:${DOCKER_TAG}"
container_name: ${MIGRATION_RUNNER_HOST}
restart: "no"
environment:
MYSQL_HOST: ${MYSQL_HOST}
MYSQL_DATABASE: ${MYSQL_DATABASE}
MYSQL_USER: ${MYSQL_USER}
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
networks:
default:
external:
name: ${NETWORK_NAME}

View File

@ -1,4 +1,4 @@
version: "3.6"
version: "3.8"
x-service:
&x-service-base
container_name: base

View File

@ -3,7 +3,7 @@
<name>ONLYOFFICE Editors SSR</name>
<startmode>manual</startmode>
<executable>node</executable>
<arguments>../../build/deploy/products/ASC.Files/editor/server.js</arguments>
<arguments>../../build/deploy/editor/server.js</arguments>
<log mode="none"/>
<delayedAutoStart>true</delayedAutoStart>
<onfailure action="none" />

View File

@ -281,6 +281,8 @@ public class FileStorageService<T> //: IFileStorageService
orderBy.SortedBy = SortedByType.New;
}
searchArea = parent.FolderType == FolderType.Archive ? SearchArea.Archive : searchArea;
int total;
IEnumerable<FileEntry> entries;
try

View File

@ -23,7 +23,7 @@
"start-personal:client": "webpack --env personal=true --config webpack/webpack.client.js --watch --no-cache",
"start-personal:server": "webpack --env personal=true --config webpack/webpack.server.js --watch --no-cache",
"start-personal:common": "yarn build:dev-client-personal && yarn build:dev-server-personal && nodemon --watch dist/server.js dist/server.js",
"deploy": "shx --silent mkdir -p ../../build/deploy/products/ASC.Files/editor && shx cp -r dist/* ../../build/deploy/products/ASC.Files/editor"
"deploy": "shx --silent mkdir -p ../../build/deploy/editor && shx cp -r dist/* ../../build/deploy/editor"
},
"devDependencies": {
"@babel/core": "^7.18.6",
@ -44,7 +44,6 @@
"copy-webpack-plugin": "^11.0.0",
"cross-env": "^7.0.3",
"css-loader": "^6.7.1",
"dotenv": "^16.0.1",
"external-remotes-plugin": "^1.0.0",
"file-loader": "^6.2.0",
"html-webpack-plugin": "5.3.2",
@ -64,18 +63,19 @@
"webpack-hot-middleware": "^2.25.0",
"webpack-manifest-plugin": "^5.0.0",
"webpack-merge": "^5.7.3",
"webpack-node-externals": "^3.0.0",
"ws": "^8.8.0"
},
"id": "e67be73d-f9ae-4ce1-8fec-1880cb518cb4",
"title": "ONLYOFFICE",
"socketPath": "/products/files/doceditor/ws",
"dependencies": {
"bufferutil": "^4.0.6",
"compression": "^1.7.4",
"express": "^4.18.1",
"i18next-express-middleware": "^2.0.0",
"i18next-fs-backend": "^1.1.4",
"morgan": "^1.10.0",
"utf-8-validate": "^5.0.9",
"winston": "^3.8.1",
"winston-daily-rotate-file": "^4.7.1"
}

View File

@ -12,11 +12,13 @@ const initialLanguage = window.initialLanguage;
initI18n(initialI18nStoreASC);
hydrate(
<App
initialLanguage={initialLanguage}
initialI18nStoreASC={initialI18nStoreASC}
{...propsObj}
/>,
<React.Suspense fallback={<div></div>}>
<App
initialLanguage={initialLanguage}
initialI18nStoreASC={initialI18nStoreASC}
{...propsObj}
/>
</React.Suspense>,
document.getElementById("root")
);

View File

@ -0,0 +1,3 @@
{
"PORT": "5013"
}

View File

@ -20,8 +20,15 @@ import { ServerStyleSheet } from "styled-components";
const sheet = new ServerStyleSheet();
const fallbackLng = "en";
const port = PORT || 5013;
let port = PORT;
const config = fs.readFileSync(path.join(__dirname, "config.json"), "utf-8");
const parsedCOnfig = JSON.parse(config);
if (parsedCOnfig?.PORT) {
port = parsedCOnfig.PORT;
}
const renderApp = (i18n, initialEditorState) => {
return renderToString(
sheet.collectStyles(

View File

@ -11,20 +11,11 @@ if (logpath != null) {
}
}
const fileName = !IS_DEVELOPMENT
const fileName = IS_DEVELOPMENT
? path.join(__dirname, "..", "..", "..", "Logs", "editor.%DATE%.log")
: logpath
? path.join(logpath, "editor.%DATE%.log")
: path.join(
__dirname,
"..",
"..",
"..",
"..",
"..",
"Logs",
"editor.%DATE%.log"
);
: path.join(__dirname, "..", "..", "..", "Logs", "editor.%DATE%.log");
const dirName = path.dirname(fileName);
if (!fs.existsSync(dirName)) {

View File

@ -1,13 +1,12 @@
const { merge } = require("webpack-merge");
const baseConfig = require("./webpack.base.js");
const webpackNodeExternals = require("webpack-node-externals");
const path = require("path");
const DefinePlugin = require("webpack").DefinePlugin;
const TerserPlugin = require("terser-webpack-plugin");
const CopyPlugin = require("copy-webpack-plugin");
const serverConfig = {
target: "node",
//mode: "development",
name: "server",
entry: {
server: "./src/server/index.js",
@ -19,7 +18,16 @@ const serverConfig = {
libraryTarget: "commonjs2",
chunkFilename: "chunks/[name].js",
},
externals: [webpackNodeExternals(), { express: "express" }],
plugins: [
new CopyPlugin({
patterns: [
{
//context: path.resolve(process.cwd(), "src/server"),
from: "src/server/config/",
},
],
}),
],
};
module.exports = (env, argv) => {
@ -33,9 +41,10 @@ module.exports = (env, argv) => {
serverConfig.mode = "development";
}
serverConfig.plugins = [
...serverConfig.plugins,
new DefinePlugin({
IS_DEVELOPMENT: argv.mode !== "production",
PORT: process.env.PORT || 5013,
PORT: 5013,
IS_PERSONAL: env.personal || false,
}),
];

View File

@ -6894,6 +6894,13 @@ buffer@^5.5.0:
base64-js "^1.3.1"
ieee754 "^1.1.13"
bufferutil@^4.0.6:
version "4.0.6"
resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.6.tgz#ebd6c67c7922a0e902f053e5d8be5ec850e48433"
integrity sha512-jduaYOYtnio4aIAyc6UbvPCVcgq7nYpVnucyxr6eCYg/Woad9Hf/oxxBRDnGGjPfjUm6j5O/uBWhIu4iLebFaw==
dependencies:
node-gyp-build "^4.3.0"
builtin-modules@^3.1.0:
version "3.3.0"
resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.3.0.tgz#cae62812b89801e9656336e46223e030386be7b6"
@ -9129,11 +9136,6 @@ dotenv-webpack@^1.8.0:
dependencies:
dotenv-defaults "^1.0.2"
dotenv@^16.0.1:
version "16.0.1"
resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.0.1.tgz#8f8f9d94876c35dac989876a5d3a82a267fdce1d"
integrity sha512-1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsKQ==
dotenv@^6.2.0:
version "6.2.0"
resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-6.2.0.tgz#941c0410535d942c8becf28d3f357dbd9d476064"
@ -15114,6 +15116,11 @@ node-forge@^0.10.0:
resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3"
integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==
node-gyp-build@^4.3.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.5.0.tgz#7a64eefa0b21112f89f58379da128ac177f20e40"
integrity sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg==
node-gyp@^5.0.2:
version "5.1.1"
resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-5.1.1.tgz#eb915f7b631c937d282e33aed44cb7a025f62a3e"
@ -20696,6 +20703,13 @@ use@^3.1.0:
resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f"
integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==
utf-8-validate@^5.0.9:
version "5.0.9"
resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.9.tgz#ba16a822fbeedff1a58918f2a6a6b36387493ea3"
integrity sha512-Yek7dAy0v3Kl0orwMlvi7TPtiCNrdfHNd7Gcc/pLq4BLXqfAmd0J7OWMizUQnTTJsyjKn02mU7anqwfmUP4J8Q==
dependencies:
node-gyp-build "^4.3.0"
util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
@ -21098,11 +21112,6 @@ webpack-merge@^5.7.3:
clone-deep "^4.0.1"
wildcard "^2.0.0"
webpack-node-externals@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/webpack-node-externals/-/webpack-node-externals-3.0.0.tgz#1a3407c158d547a9feb4229a9e3385b7b60c9917"
integrity sha512-LnL6Z3GGDPht/AigwRh2dvL9PQPFQ8skEpVrWZXLWBYmqcaojHNN0onvHzie6rq7EWKrrBfPYqNEzTJgiwEQDQ==
webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3:
version "1.4.3"
resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933"