From 48eb2b4afbaed6cdba900798897134dc6d47f26a Mon Sep 17 00:00:00 2001 From: alexandervnuchkov Date: Wed, 3 Aug 2016 15:09:21 +0300 Subject: [PATCH 01/16] Update README.md --- README.md | 7 ------- 1 file changed, 7 deletions(-) diff --git a/README.md b/README.md index 2939ef1..810dc95 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,6 @@ * [Running Docker Image](#running-docker-image) * [Configuring Docker Image](#configuring-docker-image) - [Storing Data](#storing-data) - - [Running ONLYOFFICE Document Server on Different Port](#running-onlyoffice-document-server-on-different-port) - [Running ONLYOFFICE Document Server using HTTPS](#running-onlyoffice-document-server-using-https) + [Generation of Self Signed Certificates](#generation-of-self-signed-certificates) + [Strengthening the Server Security](#strengthening-the-server-security) @@ -67,12 +66,6 @@ To get access to your data from outside the container, you need to mount the vol Storing the data on the host machine allows you to easily update ONLYOFFICE once the new version is released without losing your data. -### Running ONLYOFFICE Document Server on Different Port - -To change the port, use the -p command. E.g.: to make your portal accessible via port 8080 execute the following command: - - sudo docker run -i -t -d -p 8080:80 onlyoffice/documentserver - ### Running ONLYOFFICE Document Server using HTTPS sudo docker run -i -t -d -p 443:443 \ From befb9c1c6548d73bf425a45b3d1e98aee4a71849 Mon Sep 17 00:00:00 2001 From: Alexey Golubev Date: Tue, 23 Aug 2016 13:45:53 +0300 Subject: [PATCH 02/16] Increase max comnections count --- docker-compose.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/docker-compose.yml b/docker-compose.yml index 0584be4..e7f6500 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -56,6 +56,7 @@ services: - onlyoffice-documentserver environment: - MODE=http + - MAXCONN=65536 # Uncomment the string below to specify the path of ssl certificates #- CERT_FOLDER=/certs/ stdin_open: true From 4859e8f422695716aed08b542c84ef081dc4f90b Mon Sep 17 00:00:00 2001 From: Alexey Golubev Date: Tue, 23 Aug 2016 17:22:42 +0300 Subject: [PATCH 03/16] Removed setup max connection count --- docker-compose.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index e7f6500..0584be4 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -56,7 +56,6 @@ services: - onlyoffice-documentserver environment: - MODE=http - - MAXCONN=65536 # Uncomment the string below to specify the path of ssl certificates #- CERT_FOLDER=/certs/ stdin_open: true From b9f9ed6ba5c9af2eb09c59e812c879e33a451fc7 Mon Sep 17 00:00:00 2001 From: Alexey Golubev Date: Thu, 25 Aug 2016 19:52:14 +0300 Subject: [PATCH 04/16] mysql -> postgresql --- Dockerfile | 13 +++++---- docker-compose.yml | 27 +++++++++---------- run-document-server.sh | 60 +++++++++++++++++++++++------------------- 3 files changed, 54 insertions(+), 46 deletions(-) diff --git a/Dockerfile b/Dockerfile index a5502ca..a6b483e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,19 +5,22 @@ ENV LANG=en_US.UTF-8 LANGUAGE=en_US:en LC_ALL=en_US.UTF-8 DEBIAN_FRONTEND=nonint RUN echo "#!/bin/sh\nexit 0" > /usr/sbin/policy-rc.d && \ apt-get -y update && \ - apt-get --force-yes -yq install apt-transport-https && \ + apt-get --force-yes -yq install wget apt-transport-https && \ apt-key adv --keyserver keyserver.ubuntu.com --recv-keys D9D0BF019CC8AC0D && \ apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 1655A0AB68576280 && \ + wget https://www.postgresql.org/media/keys/ACCC4CF8.asc && \ + apt-key add ACCC4CF8.asc && \ echo "deb http://archive.ubuntu.com/ubuntu precise main universe multiverse" >> /etc/apt/sources.list && \ echo "deb https://deb.nodesource.com/node_4.x trusty main" | tee /etc/apt/sources.list.d/nodesource.list && \ + echo "deb http://apt.postgresql.org/pub/repos/apt/ trusty-pgdg main" | tee /etc/apt/sources.list.d/nodesource.list && \ locale-gen en_US.UTF-8 && \ apt-get -y update && \ echo ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true | debconf-set-selections && \ apt-get install --force-yes -yq software-properties-common && \ add-apt-repository ppa:ubuntu-toolchain-r/test && \ apt-get -y update && \ - apt-get --force-yes -yq install software-properties-common adduser mysql-server redis-server rabbitmq-server nginx-extras nodejs libstdc++6 libcurl3 libxml2 libboost-regex-dev zlib1g supervisor fonts-dejavu fonts-liberation ttf-mscorefonts-installer fonts-crosextra-carlito fonts-takao-gothic fonts-opensymbol libxss1 libgtkglext1 libcairo2 xvfb libxtst6 libgconf2-4 libasound2 bomstrip libnspr4 libnss3 libnss3-nssdb nano htop && \ - service mysql stop && \ + apt-get --force-yes -yq install software-properties-common adduser postgresql redis-server rabbitmq-server nginx-extras nodejs libstdc++6 libcurl3 libxml2 libboost-regex-dev zlib1g supervisor fonts-dejavu fonts-liberation ttf-mscorefonts-installer fonts-crosextra-carlito fonts-takao-gothic fonts-opensymbol libxss1 libgtkglext1 libcairo2 xvfb libxtst6 libgconf2-4 libasound2 bomstrip libnspr4 libnss3 libnss3-nssdb nano htop && \ + service postgresql stop && \ service redis-server stop && \ service rabbitmq-server stop && \ service supervisor stop && \ @@ -31,9 +34,9 @@ EXPOSE 80 443 RUN echo "deb http://repo-doc-onlyoffice-com.s3.amazonaws.com/ubuntu/trusty/onlyoffice-documentserver/{{GIT_BRANCH}}/{{PACKAGE_VERSION}}/ repo/" | tee /etc/apt/sources.list.d/onlyoffice.list && \ apt-get -y update && \ - service mysql start && \ + service postgresql start && \ apt-get --force-yes -yq install onlyoffice-documentserver && \ - service mysql stop && \ + service postgresql stop && \ service supervisor stop && \ chmod 755 /app/onlyoffice/*.sh && \ rm -rf /var/log/onlyoffice && \ diff --git a/docker-compose.yml b/docker-compose.yml index 0584be4..0f7dfde 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,10 +5,10 @@ services: image: onlyoffice/4testing-documentserver:latest environment: - ONLYOFFICE_DATA_CONTAINER=true - - MYSQL_SERVER_HOST=onlyoffice-mysql - - MYSQL_SERVER_PORT=3306 - - MYSQL_SERVER_DB_NAME=onlyoffice - - MYSQL_SERVER_USER=root + - POSTGRESQL_SERVER_HOST=onlyoffice-postgers + - POSTGRESQL_SERVER_PORT=5432 + - POSTGRESQL_SERVER_DB_NAME=onlyoffice + - POSTGRESQL_SERVER_USER=root - RABBITMQ_SERVER_HOST=onlyoffice-rabbitmq - RABBITMQ_SERVER_USER=guest - RABBITMQ_SERVER_PASS=guest @@ -29,7 +29,7 @@ services: image: onlyoffice/4testing-documentserver:latest depends_on: - onlyoffice-documentserver-data - - onlyoffice-mysql + - onlyoffice-postgresql - onlyoffice-redis - onlyoffice-rabbitmq environment: @@ -92,24 +92,23 @@ services: expose: - '5672' - onlyoffice-mysql: - container_name: onlyoffice-mysql - image: mysql:5.5 + onlyoffice-postgresql: + container_name: onlyoffice-postgresql + image: postgres:9.5 environment: - - MYSQL_DATABASE=onlyoffice - - MYSQL_USER=root - - MYSQL_ALLOW_EMPTY_PASSWORD='true' + - POSTGRES_DB=onlyoffice + - POSTGRES_USER=onlyoffice networks: - onlyoffice restart: always expose: - - '3306' + - '5432' volumes: - - mysql_data:/var/lib/mysql + - postgresql_data:/var/lib/postgresql networks: onlyoffice: driver: 'bridge' volumes: - mysql_data: + postgresql_data: diff --git a/run-document-server.sh b/run-document-server.sh index 9c67c67..6f2d058 100644 --- a/run-document-server.sh +++ b/run-document-server.sh @@ -31,11 +31,11 @@ JSON="json -q -f ${ONLYOFFICE_DEFAULT_CONFIG}" LOCAL_SERVICES=() read_setting(){ - MYSQL_SERVER_HOST=${MYSQL_SERVER_HOST:-$(${JSON} services.CoAuthoring.sql.dbHost)} - MYSQL_SERVER_PORT=${MYSQL_SERVER_PORT:-$(${JSON} services.CoAuthoring.sql.dbPort)} - MYSQL_SERVER_DB_NAME=${MYSQL_SERVER_DB_NAME:-$(${JSON} services.CoAuthoring.sql.dbName)} - MYSQL_SERVER_USER=${MYSQL_SERVER_USER:-$(${JSON} services.CoAuthoring.sql.dbUser)} - MYSQL_SERVER_PASS=${MYSQL_SERVER_PASS:-$(${JSON} services.CoAuthoring.sql.dbPass)} + POSTGRESQL_SERVER_HOST=${POSTGRESQL_SERVER_HOST:-$(${JSON} services.CoAuthoring.sql.dbHost)} + POSTGRESQL_SERVER_PORT=${POSTGRESQL_SERVER_PORT:-$(${JSON} services.CoAuthoring.sql.dbPort)} + POSTGRESQL_SERVER_DB_NAME=${POSTGRESQL_SERVER_DB_NAME:-$(${JSON} services.CoAuthoring.sql.dbName)} + POSTGRESQL_SERVER_USER=${POSTGRESQL_SERVER_USER:-$(${JSON} services.CoAuthoring.sql.dbUser)} + POSTGRESQL_SERVER_PASS=${POSTGRESQL_SERVER_PASS:-$(${JSON} services.CoAuthoring.sql.dbPass)} RABBITMQ_SERVER_URL=$(${JSON} rabbitmq.url) RABBITMQ_SERVER_HOST=${RABBITMQ_SERVER_HOST:-${RABBITMQ_SERVER_URL#'amqp://'}} @@ -54,8 +54,8 @@ waiting_for_connection(){ done } -waiting_for_mysql(){ - waiting_for_connection ${MYSQL_SERVER_HOST} ${MYSQL_SERVER_PORT} +waiting_for_postgresql(){ + waiting_for_connection ${POSTGRESQL_SERVER_HOST} ${POSTGRESQL_SERVER_PORT} } waiting_for_rabbitmq(){ @@ -68,12 +68,12 @@ waiting_for_redis(){ waiting_for_datacontainer(){ waiting_for_connection ${ONLYOFFICE_DATA_CONTAINER_HOST} ${ONLYOFFICE_DATA_CONTAINER_PORT} } -update_mysql_settings(){ - ${JSON} -I -e "this.services.CoAuthoring.sql.dbHost = '${MYSQL_SERVER_HOST}'" - ${JSON} -I -e "this.services.CoAuthoring.sql.dbPort = '${MYSQL_SERVER_PORT}'" - ${JSON} -I -e "this.services.CoAuthoring.sql.dbName = '${MYSQL_SERVER_DB_NAME}'" - ${JSON} -I -e "this.services.CoAuthoring.sql.dbUser = '${MYSQL_SERVER_USER}'" - ${JSON} -I -e "this.services.CoAuthoring.sql.dbPass = '${MYSQL_SERVER_PASS}'" +update_postgresql_settings(){ + ${JSON} -I -e "this.services.CoAuthoring.sql.dbHost = '${POSTGRESQL_SERVER_HOST}'" + ${JSON} -I -e "this.services.CoAuthoring.sql.dbPort = '${POSTGRESQL_SERVER_PORT}'" + ${JSON} -I -e "this.services.CoAuthoring.sql.dbName = '${POSTGRESQL_SERVER_DB_NAME}'" + ${JSON} -I -e "this.services.CoAuthoring.sql.dbUser = '${POSTGRESQL_SERVER_USER}'" + ${JSON} -I -e "this.services.CoAuthoring.sql.dbPass = '${POSTGRESQL_SERVER_PASS}'" } update_rabbitmq_setting(){ @@ -87,16 +87,22 @@ update_redis_settings(){ ${JSON} -I -e "this.services.CoAuthoring.redis.port = '${REDIS_SERVER_PORT}'" } -create_mysql_db(){ - MYSQL="mysql -s -h${MYSQL_SERVER_HOST} -u${MYSQL_SERVER_USER}" - if [ -n "${MYSQL_SERVER_PASS}" ]; then - MYSQL="$MYSQL -p${MYSQL_SERVER_PASS}" +create_postgresql_db(){ + CONNECTION_PARAMS="-h${POSTGRESQL_SERVER_HOST} -U${POSTGRESQL_SERVER_USER} -w" + if [ -n "${POSTGRESQL_SERVER_PASS}" ]; then + export PGPASSWORD=${POSTGRESQL_SERVER_PASS} fi - # Create db on remote server - ${MYSQL} -e "CREATE DATABASE IF NOT EXISTS ${MYSQL_SERVER_DB_NAME} CHARACTER SET utf8 COLLATE 'utf8_general_ci';" - ${MYSQL} "${MYSQL_SERVER_DB_NAME}" < "${APP_DIR}/server/schema/createdb.sql" -} + PSQL="psql -q $CONNECTION_PARAMS" + CREATEDB="createdb $CONNECTION_PARAMS" + + # Create db on remote server + if $PSQL -lt | cut -d\| -f 1 | grep -qw | grep 0; then + $CREATEDB $DB_NAME + fi + + $PSQL -d "${POSTGRESQL_SERVER_DB_NAME}" -f "${APP_DIR}/server/schema/postgresql/createdb.sql" +} update_nginx_settings(){ # Set up nginx @@ -156,12 +162,12 @@ if [ ${ONLYOFFICE_DATA_CONTAINER_HOST} = "localhost" ]; then read_setting # update settings by env variables - if [ ${MYSQL_SERVER_HOST} != "localhost" ]; then - update_mysql_settings - waiting_for_mysql - create_mysql_db + if [ ${POSTGRESQL_SERVER_HOST} != "localhost" ]; then + update_postgresql_settings + waiting_for_postgresql + create_postgresql_db else - LOCAL_SERVICES+=("mysql") + LOCAL_SERVICES+=("postgresql") fi if [ ${RABBITMQ_SERVER_HOST} != "localhost" ]; then @@ -190,7 +196,7 @@ for i in ${LOCAL_SERVICES[@]}; do done if [ ${ONLYOFFICE_DATA_CONTAINER} != "true" ]; then - waiting_for_mysql + waiting_for_postgresql waiting_for_rabbitmq waiting_for_redis From 6956f211944b822a3f93262f2d3c72250b20bec3 Mon Sep 17 00:00:00 2001 From: Alexey Golubev Date: Fri, 26 Aug 2016 12:18:53 +0300 Subject: [PATCH 05/16] fixed misprint --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index a6b483e..0ebc2e1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -12,7 +12,7 @@ RUN echo "#!/bin/sh\nexit 0" > /usr/sbin/policy-rc.d && \ apt-key add ACCC4CF8.asc && \ echo "deb http://archive.ubuntu.com/ubuntu precise main universe multiverse" >> /etc/apt/sources.list && \ echo "deb https://deb.nodesource.com/node_4.x trusty main" | tee /etc/apt/sources.list.d/nodesource.list && \ - echo "deb http://apt.postgresql.org/pub/repos/apt/ trusty-pgdg main" | tee /etc/apt/sources.list.d/nodesource.list && \ + echo "deb http://apt.postgresql.org/pub/repos/apt/ trusty-pgdg main" | tee /etc/apt/sources.list.d/postgresql.list && \ locale-gen en_US.UTF-8 && \ apt-get -y update && \ echo ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true | debconf-set-selections && \ From e14b97bd76d8162b1d605c63ac8d3a5adad95dee Mon Sep 17 00:00:00 2001 From: Alexey Golubev Date: Fri, 26 Aug 2016 13:39:29 +0300 Subject: [PATCH 06/16] Create db and user before install documentserver --- Dockerfile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Dockerfile b/Dockerfile index 0ebc2e1..70aa8ee 100644 --- a/Dockerfile +++ b/Dockerfile @@ -20,6 +20,9 @@ RUN echo "#!/bin/sh\nexit 0" > /usr/sbin/policy-rc.d && \ add-apt-repository ppa:ubuntu-toolchain-r/test && \ apt-get -y update && \ apt-get --force-yes -yq install software-properties-common adduser postgresql redis-server rabbitmq-server nginx-extras nodejs libstdc++6 libcurl3 libxml2 libboost-regex-dev zlib1g supervisor fonts-dejavu fonts-liberation ttf-mscorefonts-installer fonts-crosextra-carlito fonts-takao-gothic fonts-opensymbol libxss1 libgtkglext1 libcairo2 xvfb libxtst6 libgconf2-4 libasound2 bomstrip libnspr4 libnss3 libnss3-nssdb nano htop && \ + sudo -u postgres psql -c "CREATE DATABASE onlyoffice;" && \ + sudo -u postgres psql -c "CREATE USER onlyoffice WITH password 'onlyoffice';" && \ + sudo -u postgres psql -c "GRANT ALL privileges ON DATABASE onlyoffice TO onlyoffice;" && \ service postgresql stop && \ service redis-server stop && \ service rabbitmq-server stop && \ From 2d67dfe27d2b1f69d53f9ae4be6dd7d307b99f06 Mon Sep 17 00:00:00 2001 From: Alexey Golubev Date: Fri, 26 Aug 2016 15:10:53 +0300 Subject: [PATCH 07/16] fixed misprint --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 0f7dfde..9ede6fd 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,7 +5,7 @@ services: image: onlyoffice/4testing-documentserver:latest environment: - ONLYOFFICE_DATA_CONTAINER=true - - POSTGRESQL_SERVER_HOST=onlyoffice-postgers + - POSTGRESQL_SERVER_HOST=onlyoffice-postgresql - POSTGRESQL_SERVER_PORT=5432 - POSTGRESQL_SERVER_DB_NAME=onlyoffice - POSTGRESQL_SERVER_USER=root From 4a362b008c76b8b01fe00073c41d16db9f487c82 Mon Sep 17 00:00:00 2001 From: Alexey Golubev Date: Fri, 26 Aug 2016 15:20:13 +0300 Subject: [PATCH 08/16] changed user name for db --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 9ede6fd..e56aa3b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -8,7 +8,7 @@ services: - POSTGRESQL_SERVER_HOST=onlyoffice-postgresql - POSTGRESQL_SERVER_PORT=5432 - POSTGRESQL_SERVER_DB_NAME=onlyoffice - - POSTGRESQL_SERVER_USER=root + - POSTGRESQL_SERVER_USER=onlyoffice - RABBITMQ_SERVER_HOST=onlyoffice-rabbitmq - RABBITMQ_SERVER_USER=guest - RABBITMQ_SERVER_PASS=guest From 83582dd9c6d57c39167d2296e2e90671124e184e Mon Sep 17 00:00:00 2001 From: Alexey Golubev Date: Fri, 26 Aug 2016 15:44:32 +0300 Subject: [PATCH 09/16] Add a postgre key without storing a file on disk --- Dockerfile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 70aa8ee..0e5fc74 100644 --- a/Dockerfile +++ b/Dockerfile @@ -8,8 +8,7 @@ RUN echo "#!/bin/sh\nexit 0" > /usr/sbin/policy-rc.d && \ apt-get --force-yes -yq install wget apt-transport-https && \ apt-key adv --keyserver keyserver.ubuntu.com --recv-keys D9D0BF019CC8AC0D && \ apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 1655A0AB68576280 && \ - wget https://www.postgresql.org/media/keys/ACCC4CF8.asc && \ - apt-key add ACCC4CF8.asc && \ + wget -qO - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - && \ echo "deb http://archive.ubuntu.com/ubuntu precise main universe multiverse" >> /etc/apt/sources.list && \ echo "deb https://deb.nodesource.com/node_4.x trusty main" | tee /etc/apt/sources.list.d/nodesource.list && \ echo "deb http://apt.postgresql.org/pub/repos/apt/ trusty-pgdg main" | tee /etc/apt/sources.list.d/postgresql.list && \ From 6ea703a44c75b461f0bc2c7de14a40bdacdc9eb5 Mon Sep 17 00:00:00 2001 From: Alexey Golubev Date: Fri, 26 Aug 2016 17:02:51 +0300 Subject: [PATCH 10/16] MySQL -> PostgreSQL --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 2939ef1..89bcea7 100644 --- a/README.md +++ b/README.md @@ -155,11 +155,11 @@ Below is the complete list of parameters that can be set using environment varia - **SSL_KEY_PATH**: The path to the SSL certificate's private key. Defaults to `/var/www/onlyoffice/Data/certs/onlyoffice.key`. - **SSL_DHPARAM_PATH**: The path to the Diffie-Hellman parameter. Defaults to `/var/www/onlyoffice/Data/certs/dhparam.pem`. - **SSL_VERIFY_CLIENT**: Enable verification of client certificates using the `CA_CERTIFICATES_PATH` file. Defaults to `false` -- **MYSQL_SERVER_HOST**: The IP address or the name of the host where the MySQL server is running. -- **MYSQL_SERVER_PORT**: The MySQL server port number. -- **MYSQL_SERVER_DB_NAME**: The name of a MySQL database to be created on the image startup. -- **MYSQL_SERVER_USER**: The new user name with superuser permissions for the MySQL account. -- **MYSQL_SERVER_PASS**: The password set for the MySQL account. +- **POSTGRESQL_SERVER_HOST**: The IP address or the name of the host where the PostgreSQL server is running. +- **POSTGRESQL_SERVER_PORT**: The PostgreSQL server port number. +- **POSTGRESQL_SERVER_DB_NAME**: The name of a PostgreSQL database to be created on the image startup. +- **POSTGRESQL_SERVER_USER**: The new user name with superuser permissions for the PostgreSQL account. +- **POSTGRESQL_SERVER_PASS**: The password set for the PostgreSQL account. - **RABBITMQ_SERVER_HOST**: The IP address or the name of the host where the RabbitMQ server is running. - **RABBITMQ_SERVER_USER**: The RabbitMQ server user name. - **RABBITMQ_SERVER_PASS**: The password set for the RabbitMQ account. From 2518588d7f016380e594f56ce2409a2ef1c6e5b0 Mon Sep 17 00:00:00 2001 From: alexandervnuchkov Date: Tue, 30 Aug 2016 16:44:04 +0300 Subject: [PATCH 11/16] Update README.md Added link to Stack Overflow --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 1d39a26..d367c2b 100644 --- a/README.md +++ b/README.md @@ -257,6 +257,7 @@ SaaS version: [http://www.onlyoffice.com](http://www.onlyoffice.com "http://www. ## User Feedback and Support -If you have any problems with or questions about this image, please contact us through [dev.onlyoffice.org][1]. +If you have any problems with or questions about this image, please visit our official forum to find answers to your questions: [dev.onlyoffice.org][1] or you can ask and answer ONLYOFFICE development questions on [Stack Overflow][2]. [1]: http://dev.onlyoffice.org + [2]: http://stackoverflow.com/questions/tagged/onlyoffice From 5ef37630c54ada5cedfc35cf33fc1341e6d19cb4 Mon Sep 17 00:00:00 2001 From: Alexey Golubev Date: Tue, 30 Aug 2016 17:06:02 +0300 Subject: [PATCH 12/16] Use ARG to set up documentserver repo --- Dockerfile | 4 +++- Makefile | 6 +++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index 0e5fc74..d6c64f3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,8 @@ FROM ubuntu:14.04 MAINTAINER Ascensio System SIA +ARG REPO_URL="deb http://static.teamlab.com/repo/debian/ squeeze main" + ENV LANG=en_US.UTF-8 LANGUAGE=en_US:en LC_ALL=en_US.UTF-8 DEBIAN_FRONTEND=noninteractive RUN echo "#!/bin/sh\nexit 0" > /usr/sbin/policy-rc.d && \ @@ -34,7 +36,7 @@ ADD run-document-server.sh /app/onlyoffice/run-document-server.sh EXPOSE 80 443 -RUN echo "deb http://repo-doc-onlyoffice-com.s3.amazonaws.com/ubuntu/trusty/onlyoffice-documentserver/{{GIT_BRANCH}}/{{PACKAGE_VERSION}}/ repo/" | tee /etc/apt/sources.list.d/onlyoffice.list && \ +RUN echo "$REPO_URL" | tee /etc/apt/sources.list.d/onlyoffice.list && \ apt-get -y update && \ service postgresql start && \ apt-get --force-yes -yq install onlyoffice-documentserver && \ diff --git a/Makefile b/Makefile index 4d19f2f..724126d 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,7 @@ PACKAGE_VERSION := $(PRODUCT_VERSION)-$(BUILD_NUMBER) +REPO_URL := "deb http://repo-doc-onlyoffice-com.s3.amazonaws.com/ubuntu/trusty/onlyoffice-documentserver/$(GIT_BRANCH)/$(PACKAGE_VERSION)/ repo/" + ifeq ($(GIT_BRANCH), origin/develop) DOCKER_TAGS += $(subst -,.,$(PACKAGE_VERSION)) DOCKER_TAGS += latest @@ -15,10 +17,8 @@ DOCKER_TARGETS := $(foreach TAG,$(DOCKER_TAGS),$(DOCKER_REPO)$(COLON)$(TAG)) .PHONY: all clean clean-docker deploy docker $(DOCKER_TARGETS): $(DEB_REPO_DATA) - sed "s|{{GIT_BRANCH}}|$(GIT_BRANCH)|" -i Dockerfile - sed 's/{{PACKAGE_VERSION}}/'$(PACKAGE_VERSION)'/' -i Dockerfile - sudo docker build -t $(subst $(COLON),:,$@) . &&\ + sudo docker build --build-arg REPO_URL=$(REPO_URL) -t $(subst $(COLON),:,$@) . &&\ mkdir -p $$(dirname $@) &&\ echo "Done" > $@ From a015fe4c8c7da6ac2038c80292bdeea81ca6aaf2 Mon Sep 17 00:00:00 2001 From: Alexey Golubev Date: Wed, 31 Aug 2016 11:22:25 +0300 Subject: [PATCH 13/16] Moved down REPO_URL to enable caching --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index d6c64f3..15269a9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,8 +1,6 @@ FROM ubuntu:14.04 MAINTAINER Ascensio System SIA -ARG REPO_URL="deb http://static.teamlab.com/repo/debian/ squeeze main" - ENV LANG=en_US.UTF-8 LANGUAGE=en_US:en LC_ALL=en_US.UTF-8 DEBIAN_FRONTEND=noninteractive RUN echo "#!/bin/sh\nexit 0" > /usr/sbin/policy-rc.d && \ @@ -36,6 +34,8 @@ ADD run-document-server.sh /app/onlyoffice/run-document-server.sh EXPOSE 80 443 +ARG REPO_URL="deb http://static.teamlab.com/repo/debian/ squeeze main" + RUN echo "$REPO_URL" | tee /etc/apt/sources.list.d/onlyoffice.list && \ apt-get -y update && \ service postgresql start && \ From a5ebbe5cb499f8c22b2c79c83c5e9cd0701745c8 Mon Sep 17 00:00:00 2001 From: Alexey Golubev Date: Wed, 31 Aug 2016 14:06:41 +0300 Subject: [PATCH 14/16] read product name from env variable --- Dockerfile | 3 ++- Makefile | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index 15269a9..c85e032 100644 --- a/Dockerfile +++ b/Dockerfile @@ -35,11 +35,12 @@ ADD run-document-server.sh /app/onlyoffice/run-document-server.sh EXPOSE 80 443 ARG REPO_URL="deb http://static.teamlab.com/repo/debian/ squeeze main" +ARG PRODUCT_NAME=onlyoffice-documentserver RUN echo "$REPO_URL" | tee /etc/apt/sources.list.d/onlyoffice.list && \ apt-get -y update && \ service postgresql start && \ - apt-get --force-yes -yq install onlyoffice-documentserver && \ + apt-get --force-yes -yq install $PRODUCT_NAME && \ service postgresql stop && \ service supervisor stop && \ chmod 755 /app/onlyoffice/*.sh && \ diff --git a/Makefile b/Makefile index 724126d..eac2ccb 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ PACKAGE_VERSION := $(PRODUCT_VERSION)-$(BUILD_NUMBER) -REPO_URL := "deb http://repo-doc-onlyoffice-com.s3.amazonaws.com/ubuntu/trusty/onlyoffice-documentserver/$(GIT_BRANCH)/$(PACKAGE_VERSION)/ repo/" +REPO_URL := "deb http://repo-doc-onlyoffice-com.s3.amazonaws.com/ubuntu/trusty/$(PRODUCT_NAME)/$(GIT_BRANCH)/$(PACKAGE_VERSION)/ repo/" ifeq ($(GIT_BRANCH), origin/develop) DOCKER_TAGS += $(subst -,.,$(PACKAGE_VERSION)) @@ -18,7 +18,7 @@ DOCKER_TARGETS := $(foreach TAG,$(DOCKER_TAGS),$(DOCKER_REPO)$(COLON)$(TAG)) $(DOCKER_TARGETS): $(DEB_REPO_DATA) - sudo docker build --build-arg REPO_URL=$(REPO_URL) -t $(subst $(COLON),:,$@) . &&\ + sudo docker build --build-arg REPO_URL=$(REPO_URL) --build-arg PRODUCT_NAME=$(PRODUCT_NAME) -t $(subst $(COLON),:,$@) . &&\ mkdir -p $$(dirname $@) &&\ echo "Done" > $@ From fdf21d1a8c703f58303bf2dacdb6df89b3364fbf Mon Sep 17 00:00:00 2001 From: Alexey Golubev Date: Wed, 31 Aug 2016 14:47:26 +0300 Subject: [PATCH 15/16] Fixed build error --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index eac2ccb..5908900 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ PACKAGE_VERSION := $(PRODUCT_VERSION)-$(BUILD_NUMBER) -REPO_URL := "deb http://repo-doc-onlyoffice-com.s3.amazonaws.com/ubuntu/trusty/$(PRODUCT_NAME)/$(GIT_BRANCH)/$(PACKAGE_VERSION)/ repo/" +REPO_URL := "deb http://repo-doc-onlyoffice-com.s3.amazonaws.com/ubuntu/trusty/$(COMPANY_NAME)-$(PRODUCT_NAME)/$(GIT_BRANCH)/$(PACKAGE_VERSION)/ repo/" ifeq ($(GIT_BRANCH), origin/develop) DOCKER_TAGS += $(subst -,.,$(PACKAGE_VERSION)) @@ -18,7 +18,7 @@ DOCKER_TARGETS := $(foreach TAG,$(DOCKER_TAGS),$(DOCKER_REPO)$(COLON)$(TAG)) $(DOCKER_TARGETS): $(DEB_REPO_DATA) - sudo docker build --build-arg REPO_URL=$(REPO_URL) --build-arg PRODUCT_NAME=$(PRODUCT_NAME) -t $(subst $(COLON),:,$@) . &&\ + sudo docker build --build-arg REPO_URL=$(REPO_URL) --build-arg PRODUCT_NAME=$(COMPANY_NAME)-$(PRODUCT_NAME) -t $(subst $(COLON),:,$@) . &&\ mkdir -p $$(dirname $@) &&\ echo "Done" > $@ From fa6b305fd40f39f831c12e26b46c6ce7b1232db5 Mon Sep 17 00:00:00 2001 From: Alexey Golubev Date: Wed, 31 Aug 2016 19:09:25 +0300 Subject: [PATCH 16/16] Remove custom postgresql --- Dockerfile | 2 -- 1 file changed, 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index c85e032..912c658 100644 --- a/Dockerfile +++ b/Dockerfile @@ -8,10 +8,8 @@ RUN echo "#!/bin/sh\nexit 0" > /usr/sbin/policy-rc.d && \ apt-get --force-yes -yq install wget apt-transport-https && \ apt-key adv --keyserver keyserver.ubuntu.com --recv-keys D9D0BF019CC8AC0D && \ apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 1655A0AB68576280 && \ - wget -qO - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - && \ echo "deb http://archive.ubuntu.com/ubuntu precise main universe multiverse" >> /etc/apt/sources.list && \ echo "deb https://deb.nodesource.com/node_4.x trusty main" | tee /etc/apt/sources.list.d/nodesource.list && \ - echo "deb http://apt.postgresql.org/pub/repos/apt/ trusty-pgdg main" | tee /etc/apt/sources.list.d/postgresql.list && \ locale-gen en_US.UTF-8 && \ apt-get -y update && \ echo ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true | debconf-set-selections && \