diff --git a/Dockerfile b/Dockerfile index 8c2fc45..b92f49a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -21,7 +21,22 @@ RUN echo "${SOURCE_REPO_URL}" >> /etc/apt/sources.list && \ apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF && \ locale-gen en_US.UTF-8 && \ apt-get -y update && \ - apt-get install --force-yes -yq software-properties-common wget curl cron rsyslog && \ + apt-get install --force-yes -yq software-properties-common wget curl cron rsyslog gcc make && \ + wget https://www.openssl.org/source/openssl-1.1.0f.tar.gz && \ + tar xzvf openssl-1.1.0f.tar.gz && \ + cd openssl-1.1.0f && \ + ./config && \ + make && \ + sudo make install && \ + cd .. && \ + rm -f openssl-1.1.0f.tar.gz && \ wget https://www.openssl.org/source/openssl-1.1.0f.tar.gz && \ + tar xzvf openssl-1.1.0f.tar.gz && \ + cd openssl-1.1.0f && \ + ./config && \ + make && \ + sudo make install && \ + cd .. && \ + rm -f openssl-1.1.0f.tar.gz && \ wget http://nginx.org/keys/nginx_signing.key && \ apt-key add nginx_signing.key && \ echo "deb http://nginx.org/packages/mainline/ubuntu/ trusty nginx" >> /etc/apt/sources.list.d/nginx.list && \ @@ -47,4 +62,6 @@ VOLUME ["/var/lib/mysql"] EXPOSE 80 443 5222 3306 9865 9888 9866 9871 9882 5280 +ENTRYPOINT ["/usr/bin/dumb-init", "--"] + CMD ["/app/onlyoffice/run-community-server.sh"]; diff --git a/config/mysql/conf.d/onlyoffice.cnf b/config/mysql/conf.d/onlyoffice.cnf new file mode 100644 index 0000000..79abc23 --- /dev/null +++ b/config/mysql/conf.d/onlyoffice.cnf @@ -0,0 +1,4 @@ +[mysqld] +sql_mode = 'NO_ENGINE_SUBSTITUTION' +max_connections = 1000 +max_allowed_packet = 1048576000 diff --git a/docker-compose.yml b/docker-compose.yml index 56acb62..da39c14 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,14 +1,43 @@ version: '3' services: + onlyoffice-mysql-server: + container_name: onlyoffice-mysql-server + image: mysql:5.7 + environment: + - MYSQL_ROOT_PASSWORD=my-secret-pw + - MYSQL_DATABASE=onlyoffice + - MYSQL_USER=onlyoffice_user + - MYSQL_PASSWORD=onlyoffice_pass + networks: + - onlyoffice + stdin_open: true + tty: true + restart: always + volumes: + - ./config/mysql/conf.d:/etc/mysql/conf.d + - mysql_data:/var/lib/mysql onlyoffice-community-server: container_name: onlyoffice-community-server image: onlyoffice/communityserver:latest depends_on: + - onlyoffice-mysql-server - onlyoffice-document-server - onlyoffice-mail-server environment: - MAIL_SERVER_DB_HOST=onlyoffice-mail-server - DOCUMENT_SERVER_PORT_80_TCP_ADDR=onlyoffice-document-server + - MYSQL_ROOT_PASSWORD=my-secret-pw + - MYSQL_SERVER_DB_NAME=onlyoffice + - MYSQL_SERVER_HOST=onlyoffice-mysql-server + - MYSQL_SERVER_USER=onlyoffice_user + - MYSQL_SERVER_PASS=onlyoffice_pass + - MAIL_SERVER_API_PORT=8081 + - MAIL_SERVER_API_HOST=onlyoffice-mail-server + - MAIL_SERVER_DB_HOST=onlyoffice-mysql-server + - MAIL_SERVER_DB_PORT=3306 + - MAIL_SERVER_DB_NAME=onlyoffice_mailserver + - MAIL_SERVER_DB_USER=root + - MAIL_SERVER_DB_PASS=my-secret-pw networks: - onlyoffice ports: @@ -19,7 +48,6 @@ services: tty: true restart: always volumes: - - community_mysql:/var/lib/mysql - community_data:/var/www/onlyoffice/Data - community_log:/var/log/onlyoffice - document_data:/var/www/onlyoffice/DocumentServerData @@ -42,7 +70,15 @@ services: onlyoffice-mail-server: container_name: onlyoffice-mail-server image: onlyoffice/mailserver:latest + depends_on: + - onlyoffice-mysql-server hostname: ${MAIL_SERVER_HOSTNAME} + environment: + - MYSQL_SERVER=onlyoffice-mysql-server + - MYSQL_SERVER_PORT=3306 + - MYSQL_ROOT_USER=root + - MYSQL_ROOT_PASSWD=my-secret-pw + - MYSQL_SERVER_DB_NAME=onlyoffice_mailserver networks: - onlyoffice restart: always @@ -52,12 +88,10 @@ services: tty: true expose: - '8081' - - '3306' volumes: - mail_data:/var/vmail - mail_certs:/etc/pki/tls/mailserver - mail_log:/var/log - - mail_mysql:/var/lib/mysql networks: onlyoffice: driver: 'bridge' @@ -65,9 +99,8 @@ volumes: mail_data: mail_certs: mail_log: - mail_mysql: document_data: document_log: community_data: community_log: - community_mysql: + mysql_data: