Add support of MySQL DBMS (#188)

* Add support of MySQL database
This commit is contained in:
Semyon Bezrukov
2019-10-29 12:42:43 +03:00
committed by Alexey Golubev
parent b590340a10
commit 7d1606bc95
11 changed files with 310 additions and 37 deletions

31
tests/activemq.yml Normal file
View File

@ -0,0 +1,31 @@
version: '2'
services:
onlyoffice-documentserver:
container_name: onlyoffice-documentserver
image: onlyoffice/4testing-documentserver-ie:latest
environment:
- AMQP_SERVER_TYPE
- AMQP_SERVER_URL
stdin_open: true
restart: always
ports:
- '80:80'
- '443:443'
networks:
- onlyoffice
onlyoffice-activemq:
container_name: onlyoffice-activemq
image: webcenter/activemq:5.14.3
environment:
- ACTIVEMQ_USERS_guest
- ACTIVEMQ_GROUPS_owners
restart: always
networks:
- onlyoffice
expose:
- '5672'
networks:
onlyoffice:
driver: 'bridge'

40
tests/defaults.env Normal file
View File

@ -0,0 +1,40 @@
# DocumentServer Container
ONLYOFFICE_DATA_CONTAINER=true
DB_TYPE=postgres
DB_HOST=onlyoffice-postgresql
DB_PORT=5432
DB_NAME=onlyoffice
DB_USER=onlyoffice
DB_PWD=onlyoffice
AMQP_SERVER_TYPE=rabbitmq
AMQP_SERVER_URL=amqp://guest:guest@onlyoffice-rabbitmq
REDIS_SERVER_HOST=onlyoffice-redis
REDIS_SERVER_PORT=6379
JWT_ENABLED=true
JWT_SECRET=secret
JWT_HEADER=Authorization
ONLYOFFICE_DATA_CONTAINER_HOST=onlyoffice-documentserver-data
BALANCE=uri depth 3
EXCLUDE_PORTS=443
HTTP_CHECK=GET /healthcheck
EXTRA_SETTINGS=http-check expect string true
FORCE_SSL=true
# HAProxy Container
MODE=http
CERT_FOLDER=/certs/
# ActiveMQ Container
ACTIVEMQ_USERS_guest=guest
ACTIVEMQ_GROUPS_owners=guest
# Postgres Container
POSTGRES_DB=onlyoffice
POSTGRES_USER=onlyoffice
# MySQL Container
MYSQL_DATABASE=onlyoffice
MYSQL_USER=onlyoffice
MYSQL_PASSWORD=onlyoffice
MYSQL_ALLOW_EMPTY_PASSWORD=yes

35
tests/mysql.yml Normal file
View File

@ -0,0 +1,35 @@
version: '2'
services:
onlyoffice-documentserver:
container_name: onlyoffice-documentserver
image: onlyoffice/4testing-documentserver-ie:latest
depends_on:
- onlyoffice-mysql
environment:
- DB_TYPE
- DB_HOST
- DB_PORT
- DB_NAME
- DB_USER
- DB_PWD
stdin_open: true
restart: always
ports:
- '80:80'
onlyoffice-mysql:
container_name: onlyoffice-mysql
image: mysql:5.7
environment:
- MYSQL_DATABASE
- MYSQL_USER
- MYSQL_PASSWORD
- MYSQL_ALLOW_EMPTY_PASSWORD
restart: always
volumes:
- mysql_data:/var/lib/mysql
expose:
- '3306'
volumes:
mysql_data:

32
tests/postgres-old.yml Normal file
View File

@ -0,0 +1,32 @@
version: '2'
services:
onlyoffice-documentserver:
container_name: onlyoffice-documentserver
image: onlyoffice/4testing-documentserver-ie:latest
depends_on:
- onlyoffice-postgresql
environment:
- POSTGRESQL_SERVER_HOST
- POSTGRESQL_SERVER_PORT
- POSTGRESQL_SERVER_DB_NAME
- POSTGRESQL_SERVER_USER
- POSTGRESQL_SERVER_PASS
stdin_open: true
restart: always
ports:
- '80:80'
onlyoffice-postgresql:
container_name: onlyoffice-postgresql
image: postgres:9.5
environment:
- POSTGRES_DB
- POSTGRES_USER
restart: always
expose:
- '5432'
volumes:
- postgresql_data:/var/lib/postgresql
volumes:
postgresql_data:

33
tests/postgres.yml Normal file
View File

@ -0,0 +1,33 @@
version: '2'
services:
onlyoffice-documentserver:
container_name: onlyoffice-documentserver
image: onlyoffice/4testing-documentserver-ie:latest
depends_on:
- onlyoffice-postgresql
environment:
- DB_TYPE
- DB_HOST
- DB_PORT
- DB_NAME
- DB_USER
- DB_PWD
stdin_open: true
restart: always
ports:
- '80:80'
onlyoffice-postgresql:
container_name: onlyoffice-postgresql
image: postgres:9.5
environment:
- POSTGRES_DB
- POSTGRES_USER
restart: always
expose:
- '5432'
volumes:
- postgresql_data:/var/lib/postgresql
volumes:
postgresql_data:

37
tests/test.sh Executable file
View File

@ -0,0 +1,37 @@
#!/bin/bash
# Check if the yml exists
if [[ ! -f $config ]]; then
echo "File $config doesn't exist!"
exit 1
fi
env_file=defaults.env
# Copy .env
if [[ -f $env_file ]]; then
cp $env_file .env
else
echo "File $env_file doesn't exist!"
exit 1
fi
# Run test environment
docker-compose -p ds -f $config up -d
wakeup_timeout=30
# Get documentserver healthcheck status
echo "Wait for service wake up"
sleep $wakeup_timeout
healthcheck_res=$(wget --no-check-certificate -qO - localhost/healthcheck)
# Fail if it isn't true
if [[ $healthcheck_res == "true" ]]; then
echo "Healthcheck passed."
else
echo "Healthcheck failed!"
exit 1
fi
docker-compose -p ds -f $config down