diff --git a/build/install/common/publish-backend.sh b/build/install/common/publish-backend.sh index 9e5dc9ccaf..64afc5cc7c 100644 --- a/build/install/common/publish-backend.sh +++ b/build/install/common/publish-backend.sh @@ -56,12 +56,8 @@ while [ "$1" != "" ]; do done # Array of names server in directory products -servers_products_name_backend=(ASC.CRM) servers_products_name_backend+=(ASC.Files) servers_products_name_backend+=(ASC.People) -servers_products_name_backend+=(ASC.Projects) -servers_products_name_backend+=(ASC.Calendar) -servers_products_name_backend+=(ASC.Mail) # Publish server backend products for i in ${!servers_products_name_backend[@]}; do diff --git a/build/install/docker/.env b/build/install/docker/.env index a826b52101..7f7c941349 100644 --- a/build/install/docker/.env +++ b/build/install/docker/.env @@ -44,20 +44,17 @@ MYSQL_USER=${PRODUCT}_user MYSQL_PASSWORD=${PRODUCT}_pass MYSQL_HOST=${CONTAINER_PREFIX}mysql-server + DATABASE_MIGRATION=false # service host # API_SYSTEM_HOST=${CONTAINER_PREFIX}api-system BACKUP_HOST=${CONTAINER_PREFIX}backup - CALENDAR_HOST=${CONTAINER_PREFIX}calendar - CRM_HOST=${CONTAINER_PREFIX}crm STORAGE_ENCRYPTION_HOST=${CONTAINER_PREFIX}storage-encryption FILES_HOST=${CONTAINER_PREFIX}files FILES_SERVICES_HOST=${CONTAINER_PREFIX}files-services - MAIL_HOST=${CONTAINER_PREFIX}mail STORAGE_MIGRATION_HOST=${CONTAINER_PREFIX}storage-migration NOTIFY_HOST=${CONTAINER_PREFIX}notify PEOPLE_SERVER_HOST=${CONTAINER_PREFIX}people-server - PROJECTS_SERVER_HOST=${CONTAINER_PREFIX}projects-server SOCKET_HOST=${CONTAINER_PREFIX}socket STUDIO_NOTIFY_HOST=${CONTAINER_PREFIX}studio-notify TELEGRAM_SERVICE_HOST=${CONTAINER_PREFIX}telegram-service @@ -71,16 +68,12 @@ # proxy upstream environment # SERVICE_API_SYSTEM=${API_SYSTEM_HOST}:${SERVICE_PORT} SERVICE_BACKUP=${BACKUP_HOST}:${SERVICE_PORT} - SERVICE_CRM=${CRM_HOST}:${SERVICE_PORT} - SERVICE_CALENDAR=${CALENDAR_HOST}:${SERVICE_PORT} SERVICE_STORAGE_ENCRYPTION=${STORAGE_ENCRYPTION_HOST}:${SERVICE_PORT} SERVICE_FILES=${FILES_HOST}:${SERVICE_PORT} SERVICE_FILES_SERVICES=${FILES_SERVICES_HOST}:${SERVICE_PORT} - SERVICE_MAIL=${MAIL_HOST}:${SERVICE_PORT} SERVICE_STORAGE_MIGRATION=${STORAGE_MIGRATION_HOST}:${SERVICE_PORT} SERVICE_NOTIFY=${NOTIFY_HOST}:${SERVICE_PORT} SERVICE_PEOPLE_SERVER=${PEOPLE_SERVER_HOST}:${SERVICE_PORT} - SERVICE_PROJECTS_SERVER=${PROJECTS_SERVER_HOST}:${SERVICE_PORT} SERVICE_SOCKET=${SOCKET_HOST}:9899 SERVICE_STUDIO_NOTIFY=${STUDIO_NOTIFY_HOST}:${SERVICE_PORT} SERVICE_TELEGRAM_SERVICE=${TELEGRAM_SERVICE_HOST}:${SERVICE_PORT} diff --git a/build/install/docker/Dockerfile.app b/build/install/docker/Dockerfile.app index a1e976ef43..451a0fffdf 100644 --- a/build/install/docker/Dockerfile.app +++ b/build/install/docker/Dockerfile.app @@ -1,10 +1,12 @@ ### STAGE 1: Base image ###### ARG SRC_PATH=/app/onlyoffice/src ARG BUILD_PATH=/var/www -ARG REPO_TAG=5.0.202-focal-amd64 -ARG REPO=mcr.microsoft.com/dotnet/sdk +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 -FROM $REPO:$REPO_TAG AS base +FROM $REPO_SDK:$REPO_SDK_TAG AS base ARG RELEASE_DATE="2016-06-21" ARG DEBIAN_FRONTEND=noninteractive ARG PRODUCT_VERSION=0.0.0 @@ -67,7 +69,7 @@ COPY config/mysql/conf.d/mysql.cnf /etc/mysql/conf.d/mysql.cnf RUN rm -rf /var/lib/apt/lists/* ### STAGE 2: Build ### -FROM mcr.microsoft.com/dotnet/aspnet:5.0.4-focal-amd64 as builder +FROM $REPO_RUN:$REPO_RUN_TAG as builder ARG BUILD_PATH ENV BUILD_PATH=${BUILD_PATH} @@ -159,24 +161,6 @@ COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.Data.B CMD ["ASC.Data.Backup.dll", "ASC.Data.Backup", "core:products:folder=/var/www/products/", "core:products:subfolder=server"] -## ASC.Calendar ## -FROM builder AS calendar -WORKDIR ${BUILD_PATH}/products/ASC.Calendar/server/ - -COPY --chown=onlyoffice:onlyoffice docker-entrypoint.sh . -COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/products/ASC.Calendar/server/ . - -CMD ["ASC.Calendar.dll", "ASC.Calendar"] - -## ASC.CRM ## -FROM builder AS crm -WORKDIR ${BUILD_PATH}/products/ASC.CRM/server/ - -COPY --chown=onlyoffice:onlyoffice docker-entrypoint.sh . -COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/products/ASC.CRM/server/ . - -CMD ["ASC.CRM.dll", "ASC.CRM"] - ## ASC.Data.Storage.Encryption ## FROM builder AS data_storage_encryption WORKDIR ${BUILD_PATH}/services/storage.encryption/ @@ -204,15 +188,6 @@ COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.Files. CMD ["ASC.Files.Service.dll", "ASC.Files.Service", "core:products:folder=/var/www/products/", "core:products:subfolder=server", "disable_elastic=true"] -## ASC.Mail ## -FROM builder AS mail -WORKDIR ${BUILD_PATH}/products/ASC.Mail/server/ - -COPY --chown=onlyoffice:onlyoffice docker-entrypoint.sh . -COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/products/ASC.Mail/server/ . - -CMD ["ASC.Mail.dll", "ASC.Mail"] - ## ASC.Data.Storage.Migration ## FROM builder AS data_storage_migration WORKDIR ${BUILD_PATH}/services/storage.migration/service/ @@ -240,15 +215,6 @@ COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/products/ASC.People CMD ["ASC.People.dll", "ASC.People"] -## ASC.Projects ## -FROM builder AS projects_server -WORKDIR ${BUILD_PATH}/products/ASC.Projects/server/ - -COPY --chown=onlyoffice:onlyoffice docker-entrypoint.sh . -COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/products/ASC.Projects/server/ . - -CMD ["ASC.Projects.dll", "ASC.Projects"] - ## ASC.Socket.IO.Svc ## FROM builder AS socket WORKDIR ${BUILD_PATH}/services/socket.io.svc/ @@ -339,10 +305,10 @@ 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/ +# 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 ## diff --git a/build/install/docker/appserver.yml b/build/install/docker/appserver.yml index d2ef54a492..172e407351 100644 --- a/build/install/docker/appserver.yml +++ b/build/install/docker/appserver.yml @@ -1,4 +1,4 @@ -version: "3.6" +version: "3.8" x-service: &x-service-base container_name: base @@ -11,6 +11,7 @@ x-service: MYSQL_DATABASE: ${MYSQL_DATABASE} MYSQL_USER: ${MYSQL_USER} MYSQL_PASSWORD: ${MYSQL_PASSWORD} + DATABASE_MIGRATION: ${DATABASE_MIGRATION} APP_DOTNET_ENV: ${APP_DOTNET_ENV} APP_CORE_BASE_DOMAIN: ${APP_CORE_BASE_DOMAIN} APP_CORE_MACHINEKEY: ${APP_CORE_MACHINEKEY} @@ -26,10 +27,6 @@ x-service: - 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: @@ -63,16 +60,6 @@ services: 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}" @@ -88,11 +75,6 @@ services: 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}" @@ -103,11 +85,6 @@ services: 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}" @@ -173,15 +150,11 @@ services: 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 @@ -193,16 +166,12 @@ services: 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} @@ -227,7 +196,3 @@ volumes: app_data: files_data: people_data: - crm_data: - project_data: - calendar_data: - mail_data: diff --git a/build/install/docker/build.yml b/build/install/docker/build.yml index 444d3a49ea..9f8862841d 100644 --- a/build/install/docker/build.yml +++ b/build/install/docker/build.yml @@ -1,4 +1,4 @@ -version: "3.6" +version: "3.8" services: onlyoffice-api-system: @@ -14,21 +14,7 @@ services: dockerfile: "${DOCKERFILE}" target: backup image: "${REPO}/${STATUS}appserver-backup:${DOCKER_TAG}" - - onlyoffice-calendar: - build: - context: ./ - dockerfile: "${DOCKERFILE}" - target: calendar - image: "${REPO}/${STATUS}appserver-calendar:${DOCKER_TAG}" - - onlyoffice-crm: - build: - context: ./ - dockerfile: "${DOCKERFILE}" - target: crm - image: "${REPO}/${STATUS}appserver-crm:${DOCKER_TAG}" - + onlyoffice-storage-encryption: build: context: ./ @@ -50,13 +36,6 @@ services: target: files_services image: "${REPO}/${STATUS}appserver-files-services:${DOCKER_TAG}" - onlyoffice-mail: - build: - context: ./ - dockerfile: "${DOCKERFILE}" - target: mail - image: "${REPO}/${STATUS}appserver-mail:${DOCKER_TAG}" - onlyoffice-storage-migration: build: context: ./ @@ -77,13 +56,6 @@ services: dockerfile: "${DOCKERFILE}" target: people_server image: "${REPO}/${STATUS}appserver-people-server:${DOCKER_TAG}" - - onlyoffice-projects-server: - build: - context: ./ - dockerfile: "${DOCKERFILE}" - target: projects_server - image: "${REPO}/${STATUS}appserver-projects-server:${DOCKER_TAG}" onlyoffice-socket: build: diff --git a/build/install/docker/config/onlyoffice.upgradev110.sql b/build/install/docker/config/onlyoffice.upgradev110.sql deleted file mode 100644 index d6b610266f..0000000000 --- a/build/install/docker/config/onlyoffice.upgradev110.sql +++ /dev/null @@ -1,112 +0,0 @@ -DELIMITER DLM00 - -DROP PROCEDURE IF EXISTS upgrade110 DLM00 - -CREATE PROCEDURE upgrade110() -BEGIN - - IF (SELECT DATA_TYPE FROM information_schema.`COLUMNS` WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'crm_invoice_item' AND COLUMN_NAME = 'quantity') <> 'decimal' THEN - ALTER TABLE `crm_invoice_item` CHANGE COLUMN `quantity` `quantity` DECIMAL(10,2) NOT NULL DEFAULT '0.00' AFTER `price`; - END IF; - - IF (SELECT DATA_TYPE FROM information_schema.`COLUMNS` WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'crm_invoice_item' AND COLUMN_NAME = 'stock_quantity') <> 'decimal' THEN - ALTER TABLE `crm_invoice_item` CHANGE COLUMN `stock_quantity` `stock_quantity` DECIMAL(10,2) NOT NULL DEFAULT '0.00' AFTER `quantity`; - END IF; - - IF (SELECT DATA_TYPE FROM information_schema.`COLUMNS` WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'crm_invoice_line' AND COLUMN_NAME = 'quantity') <> 'decimal' THEN - ALTER TABLE `crm_invoice_line` CHANGE COLUMN `quantity` `quantity` DECIMAL(10,2) NOT NULL DEFAULT '0.00' AFTER `description`; - END IF; - - IF (SELECT DATA_TYPE FROM information_schema.`COLUMNS` WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'crm_invoice_line' AND COLUMN_NAME = 'discount') <> 'decimal' THEN - ALTER TABLE `crm_invoice_line` CHANGE COLUMN `discount` `discount` DECIMAL(10,2) NOT NULL DEFAULT '0.00' AFTER `price`; - END IF; - - IF EXISTS(SELECT * FROM information_schema.`COLUMNS` WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'crm_invoice_item' AND COLUMN_NAME = 'quantity') THEN - ALTER TABLE `crm_invoice_item` DROP COLUMN `quantity`; - END IF; - - IF NOT EXISTS(SELECT * FROM information_schema.`COLUMNS` WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'notify_queue' AND COLUMN_NAME = 'auto_submitted') THEN - ALTER TABLE `notify_queue` ADD COLUMN `auto_submitted` VARCHAR(64) NULL DEFAULT NULL AFTER `attachments`; - END IF; - - IF NOT EXISTS(SELECT * FROM information_schema.`COLUMNS` WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'core_usersecurity' AND COLUMN_NAME = 'LastModified') THEN - ALTER TABLE `core_usersecurity` ADD COLUMN `LastModified` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP() ON UPDATE CURRENT_TIMESTAMP() AFTER `pwdhashsha512`; - END IF; - - UPDATE `tenants_quota` SET `features` = 'domain,audit,controlpanel,healthcheck,ldap,sso,whitelabel,branding,ssbranding,update,support,portals:10000,discencryption,privacyroom' WHERE `tenant` = -1 and `name` NOT LIKE '%saas%'; - UPDATE `tenants_quota` SET `features` = 'docs,domain,audit,controlpanel,healthcheck,ldap,sso,whitelabel,branding,ssbranding,update,support,portals:10000,discencryption,privacyroom' WHERE tenant = -1000; - - CREATE TABLE IF NOT EXISTS `telegram_users` ( - `portal_user_id` VARCHAR(38) NOT NULL, - `tenant_id` INT(11) NOT NULL, - `telegram_user_id` INT(11) NOT NULL, - PRIMARY KEY (`tenant_id`, `portal_user_id`), - INDEX `tgId` (`telegram_user_id`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - UPDATE `res_data` - SET `textValue` = REPLACE(`textValue`, 'products/crm/default', 'Products/CRM/Default') - WHERE `fileid` = (SELECT `id` FROM `res_files` WHERE `resName` = 'CRMPatternResource.resx'); - - UPDATE `res_data` - SET `textValue` = REPLACE(`textValue`, 'products/crm/deals', 'Products/CRM/Deals') - WHERE `fileid` = (SELECT `id` FROM `res_files` WHERE `resName` = 'CRMPatternResource.resx'); - - UPDATE `res_data` - SET `textValue` = REPLACE(`textValue`, 'products/crm/tasks', 'Products/CRM/Tasks') - WHERE `fileid` = (SELECT `id` FROM `res_files` WHERE `resName` = 'CRMPatternResource.resx'); - - UPDATE `res_data` - SET `textValue` = REPLACE(`textValue`, 'products/crm', 'Products/CRM') - WHERE `fileid` = (SELECT `id` FROM `res_files` WHERE `resName` = 'CRMPatternResource.resx'); - - UPDATE `res_data` - SET `textValue` = REPLACE(`textValue`, 'products/projects/messages', 'Products/Projects/Messages') - WHERE `fileid` = (SELECT `id` FROM `res_files` WHERE `resName` = 'PatternResource.resx'); - - UPDATE `res_data` - SET `textValue` = REPLACE(`textValue`, 'products/projects/tasks', 'Products/Projects/Tasks') - WHERE `fileid` = (SELECT `id` FROM `res_files` WHERE `resName` = 'PatternResource.resx'); - - UPDATE `res_data` - SET `textValue` = REPLACE(`textValue`, 'products/projects/projects', 'Products/Projects/Projects') - WHERE `fileid` = (SELECT `id` FROM `res_files` WHERE `resName` = 'PatternResource.resx'); - - UPDATE `res_data` - SET `textValue` = REPLACE(`textValue`, 'products/projects/milestones', 'Products/Projects/Milestones') - WHERE `fileid` = (SELECT `id` FROM `res_files` WHERE `resName` = 'PatternResource.resx'); - - UPDATE `res_data` - SET `textValue` = REPLACE(`textValue`, 'products/projects', 'Products/Projects') - WHERE `fileid` = (SELECT `id` FROM `res_files` WHERE `resName` = 'PatternResource.resx'); - - UPDATE `res_data` - SET `textValue` = REPLACE(`textValue`, 'products/files', 'Products/Files') - WHERE `fileid` = (SELECT `id` FROM `res_files` WHERE `resName` = 'FilesPatternResource.resx'); - - UPDATE `res_data` - SET `textValue` = REPLACE(`textValue`, 'products/files', 'Products/Files') - WHERE `fileid` = (SELECT `id` FROM `res_files` WHERE `resName` = 'WebstudioNotifyPatternResource.resx'); - - UPDATE `res_data` - SET `textValue` = REPLACE(`textValue`, 'products/projects', 'Products/Projects') - WHERE `fileid` = (SELECT `id` FROM `res_files` WHERE `resName` = 'WebstudioNotifyPatternResource.resx'); - - UPDATE `res_data` - SET `textValue` = REPLACE(`textValue`, 'products/community', 'Products/Community') - WHERE `fileid` = (SELECT `id` FROM `res_files` WHERE `resName` = 'WebstudioNotifyPatternResource.resx'); - - UPDATE `res_data` - SET `textValue` = REPLACE(`textValue`, 'products/crm', 'Products/CRM') - WHERE `fileid` = (SELECT `id` FROM `res_files` WHERE `resName` = 'WebstudioNotifyPatternResource.resx'); - - UPDATE `core_settings` - SET `value`=0xF547048A4865171587D9CEBC8A496C601D96031F2C1C3E9160353942EE765DACD316F4B5F42892436FC4A21B9A6DF8FFD3BC4036B47E3A5A1B4C881B26609869FEBB6848BD88C02EEAC6A4CCB3E8F404290812F0E6E124A552BE81A58C64BB8BD3C9A8C0EDE1F9421281DE0C7AF82733A4BCE515E85694C4DDA78E22652BA2891FCE9578F97285A81E12FEDF5D6558611E3AA3E03EADDCAA98287C64A5510757A881B00C3345E6FC1E22B607CA2D753C63F1ED94C92366DBA0E4C2E6DB16F44A8AB091007AA7505D17E41530643C1FFAE822F8F99FD2E30C0DEF82DF65C43324507F3E5C68E4C5E22BE8A40C24423485 - WHERE `tenant`=-1 AND `id`='CompanyWhiteLabelSettings'; - -END DLM00 - -CALL upgrade110() DLM00 - -DELIMITER ; diff --git a/build/install/docker/config/onlyoffice.upgradev111.sql b/build/install/docker/config/onlyoffice.upgradev111.sql deleted file mode 100644 index 32931d2104..0000000000 --- a/build/install/docker/config/onlyoffice.upgradev111.sql +++ /dev/null @@ -1,19 +0,0 @@ -DELIMITER DLM00 - -DROP PROCEDURE IF EXISTS upgrade111 DLM00 - -CREATE PROCEDURE upgrade111() -BEGIN - - IF NOT EXISTS(SELECT * FROM information_schema.`COLUMNS` WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'files_file' AND COLUMN_NAME = 'thumb') THEN - ALTER TABLE `files_file` ADD COLUMN `thumb` INT(1) NOT NULL DEFAULT '0' AFTER `forcesave`; - END IF; - - ALTER TABLE `files_thirdparty_account` CHANGE COLUMN `password` `password` VARCHAR(512) NOT NULL AFTER `user_name`; - - -END DLM00 - -CALL upgrade111() DLM00 - -DELIMITER ; diff --git a/build/install/docker/config/onlyoffice.upgradev115.sql b/build/install/docker/config/onlyoffice.upgradev115.sql deleted file mode 100644 index 2b4a35e559..0000000000 --- a/build/install/docker/config/onlyoffice.upgradev115.sql +++ /dev/null @@ -1,39 +0,0 @@ -DELIMITER DLM00 - -DROP PROCEDURE IF EXISTS upgrade115 DLM00 - -CREATE PROCEDURE upgrade115() -BEGIN - - INSERT IGNORE INTO `files_converts` (`input`, `output`) VALUES ('.fb2', '.docx'); - INSERT IGNORE INTO `files_converts` (`input`, `output`) VALUES ('.fb2', '.odt'); - INSERT IGNORE INTO `files_converts` (`input`, `output`) VALUES ('.fb2', '.pdf'); - INSERT IGNORE INTO `files_converts` (`input`, `output`) VALUES ('.fb2', '.rtf'); - INSERT IGNORE INTO `files_converts` (`input`, `output`) VALUES ('.fb2', '.txt'); - - IF NOT EXISTS(SELECT * FROM information_schema.`COLUMNS` WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'calendar_events' AND COLUMN_NAME = 'time_zone') THEN - ALTER TABLE `calendar_events` ADD COLUMN `time_zone` VARCHAR(255) NULL DEFAULT NULL AFTER `status`; - END IF; - - IF NOT EXISTS(SELECT * FROM information_schema.`COLUMNS` WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'backup_backup' AND COLUMN_NAME = 'hash') THEN - ALTER TABLE `backup_backup` ADD COLUMN `hash` char(64) NOT NULL AFTER `storage_params`; - END IF; - - IF EXISTS(SELECT * FROM information_schema.`COLUMNS` WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'tenants_tariff' AND COLUMN_NAME = 'tariff_key') THEN - ALTER TABLE `tenants_tariff` DROP COLUMN `tariff_key`; - END IF; - - IF NOT EXISTS(SELECT * FROM information_schema.`COLUMNS` WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'tenants_tariff' AND COLUMN_NAME = 'quantity') THEN - ALTER TABLE `tenants_tariff` ADD COLUMN `quantity` int(10) NOT NULL DEFAULT 1 AFTER `stamp`; - END IF; - - INSERT IGNORE INTO `crm_currency_info` (`resource_key`, `abbreviation`, `symbol`, `culture_name`, `is_convertable`, `is_basic`) values ('Currency_MongolianTugrik', 'MNT', '₮', 'MN', 0, 0); - - UPDATE `tenants_quota` SET `features` = 'docs,domain,audit,controlpanel,healthcheck,ldap,sso,whitelabel,branding,ssbranding,update,support,portals:10000,discencryption,privacyroom,restore,contentsearch' WHERE tenant = -1000; - UPDATE `tenants_quota` SET `features` = 'domain,audit,controlpanel,healthcheck,ldap,sso,whitelabel,branding,ssbranding,update,support,portals:10000,discencryption,privacyroom,restore,contentsearch' WHERE `tenant` = -1 and `name` NOT LIKE '%saas%'; - -END DLM00 - -CALL upgrade115() DLM00 - -DELIMITER ; diff --git a/build/install/docker/db.yml b/build/install/docker/db.yml index 15dd9289f5..b17ca23295 100644 --- a/build/install/docker/db.yml +++ b/build/install/docker/db.yml @@ -1,4 +1,4 @@ -version: "3.6" +version: "3.8" services: @@ -22,13 +22,6 @@ services: volumes: - mysql_data:/var/lib/mysql - ./config/mysql/conf.d/:/etc/mysql/conf.d - - ./config/createdb.sql:/docker-entrypoint-initdb.d/01_createdb.sql - - ./config/onlyoffice.sql:/docker-entrypoint-initdb.d/02_onlyoffice.sql - - ./config/onlyoffice.data.sql:/docker-entrypoint-initdb.d/03_onlyoffice.data.sql - - ./config/onlyoffice.resources.sql:/docker-entrypoint-initdb.d/04_onlyoffice.resources.sql - - ./config/onlyoffice.upgradev110.sql:/docker-entrypoint-initdb.d/05_onlyoffice.upgradev110.sql - - ./config/onlyoffice.upgradev111.sql:/docker-entrypoint-initdb.d/06_onlyoffice.upgradev111.sql - - ./config/onlyoffice.upgradev115.sql:/docker-entrypoint-initdb.d/07_onlyoffice.upgradev115.sql networks: - ${NETWORK_NAME} tmpfs: /var/log/mysql/ diff --git a/build/install/docker/docker-entrypoint.sh b/build/install/docker/docker-entrypoint.sh index 3e6bcbb6f1..ffa6ff1e79 100755 --- a/build/install/docker/docker-entrypoint.sh +++ b/build/install/docker/docker-entrypoint.sh @@ -50,6 +50,8 @@ ELK_HOST=${ELK_HOST:-"${PRODUCT}-elasticsearch"} ELK_PORT=${ELK_PORT:-"9200"} ELK_THREADS=${ELK_THREADS:-"1"} +DATABASE_MIGRATION=${DATABASE_MIGRATION:-"false"} + KAFKA_HOST=${KAFKA_HOST:-"kafka"}":9092" APP_STORAGE_ROOT=${APP_STORAGE_ROOT:-"${BASE_DIR}/data/"} @@ -62,6 +64,7 @@ sed -i "s!\"internal\".*,!\"internal\": \"${DOCUMENT_SERVER_URL_INTERNAL}\",!g" 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 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