diff --git a/run-document-server.sh b/run-document-server.sh index 51a7039..b161b40 100644 --- a/run-document-server.sh +++ b/run-document-server.sh @@ -173,6 +173,9 @@ read_setting(){ "mariadb"|"mysql") DB_PORT=${DB_PORT:-"3306"} ;; + "dameng") + DB_PORT=${DB_PORT:-"5236"} + ;; "") DB_PORT=${DB_PORT:-${POSTGRESQL_SERVER_PORT:-$(${JSON} services.CoAuthoring.sql.dbPort)}} ;; diff --git a/tests/damengdb/.env b/tests/damengdb/.env new file mode 100644 index 0000000..0fd2523 --- /dev/null +++ b/tests/damengdb/.env @@ -0,0 +1 @@ +VERSION=latest diff --git a/tests/damengdb/README.md b/tests/damengdb/README.md new file mode 100644 index 0000000..c7f9c97 --- /dev/null +++ b/tests/damengdb/README.md @@ -0,0 +1,19 @@ +## Stand Documentserver with damengdb + +### How it works + +For deploy stand, you need: + +**STEP 1**: Build you own images, do it with command: + +```bash +docker compose build +``` + +**STEP 2**: Wait build and when it finish deploy with command: + +```bash +docker compose up -d +``` + +Thats all. diff --git a/tests/damengdb/damengdb.Dockerfile b/tests/damengdb/damengdb.Dockerfile new file mode 100644 index 0000000..a0a708c --- /dev/null +++ b/tests/damengdb/damengdb.Dockerfile @@ -0,0 +1,46 @@ +FROM onlyoffice/damengdb:8.1.2 as damengdb + +ARG DM8_USER="SYSDBA" +ARG DM8_PASS="SYSDBA001" +ARG DB_HOST="localhost" +ARG DB_PORT="5236" +ARG DISQL_BIN="/opt/dmdbms/bin" + +SHELL ["/bin/bash", "-c"] + +COPY <<"EOF" /wait_dm_ready.sh +#!/usr/bin/env bash + +function wait_dm_ready() { + cd /opt/dmdbms/bin + for i in `seq 1 10`; do + echo `./disql /nolog < /dev/null 2>&1 + if [ $? -eq 0 ]; then + echo "DM Database is not OK, please wait..." + sleep 10 + else + echo "DM Database is OK" + break + fi + done +} + +wait_dm_ready + +EOF + + +RUN bash /opt/startup.sh > /dev/null 2>&1 \ + & mkdir -p /schema/damengdb \ + && apt update -y ; apt install wget -y \ + && wget https://raw.githubusercontent.com/ONLYOFFICE/server/master/schema/dameng/createdb.sql -P /schema/dameng/ \ + && bash ./wait_dm_ready.sh \ + && cd ${DISQL_BIN} \ + && ./disql $DM8_USER/$DM8_PASS@$DB_HOST:$DB_PORT -e \ + "create user "onlyoffice" identified by "onlyoffice" password_policy 0;" \ + && echo "EXIT" | tee -a /schema/dameng/createdb.sql \ + && ./disql $DM8_USER/$DM8_PASS@$DB_HOST:$DB_PORT \`/schema/dameng/createdb.sql \ + && sleep 10 diff --git a/tests/damengdb/docker-compose.yml b/tests/damengdb/docker-compose.yml new file mode 100644 index 0000000..c28dfb6 --- /dev/null +++ b/tests/damengdb/docker-compose.yml @@ -0,0 +1,67 @@ +version: '2' +services: + onlyoffice-documentserver: + build: + context: ../../. + dockerfile: Dockerfile + target: documentserver + container_name: onlyoffice-documentserver + depends_on: + - onlyoffice-dameng + - onlyoffice-rabbitmq + environment: + - DB_TYPE=dameng + - DB_HOST=onlyoffice-dameng + - DB_PORT=5236 + - DB_NAME=onlyoffice + - DB_USER=onlyoffice + - AMQP_URI=amqp://guest:guest@onlyoffice-rabbitmq + # Costomize the JSON Web Token validation parameters if needed. + #- JWT_ENABLED=false + #- JWT_SECRET=secret + #- JWT_HEADER=Authorization + #- JWT_IN_BODY=true + ports: + - '80:80' + - '443:443' + stdin_open: true + restart: always + stop_grace_period: 60s + volumes: + - /var/www/onlyoffice/Data + - /var/log/onlyoffice + - /var/lib/onlyoffice/documentserver/App_Data/cache/files + - /var/www/onlyoffice/documentserver-example/public/files + - /usr/share/fonts + + onlyoffice-rabbitmq: + container_name: onlyoffice-rabbitmq + image: rabbitmq + restart: always + expose: + - '5672' + + onlyoffice-dameng: + container_name: onlyoffice-dameng + build: + context: . + dockerfile: damengdb.Dockerfile + target: damengdb + args: + DM8_USER: SYSDBA + DM8_PASS: SYSDBA001 + DB_HOST: localhost + DB_PORT: 5236 + environment: + - PAGE_SIZE=16 + - LD_LIBRARY_PATH=/opt/dmdbms/bin + - INSTANCE_NAME=dm8_01 + restart: always + expose: + - '5236' + volumes: + - dameng_data:/opt/dmdbms/data + +volumes: + dameng_data: +