ONLYOFFICE / Docker-DocumentServer

ONLYOFFICE Document Server is an online office suite comprising viewers and editors for texts, spreadsheets and presentations, fully compatible with Office Open XML formats: .docx, .xlsx, .pptx and enabling collaborative editing in real time.
GNU Affero General Public License v3.0
1.37k stars 470 forks source link

Onlyofficedocs need long time to start because the inner rabbitmq some time not start #699

Open chendelin1982 opened 8 months ago

chendelin1982 commented 8 months ago

Do you want to request a feature or report a bug?

When use Onlyofficedocs, I found it need long time to start because the inner rabbitmq some time not start. logs below

Waiting for connection to the localhost host on port 5672

If I add outside rabbitmq, Onlyofficedocs starting very quickly

version: '3.8'
services:     
  onlyofficedocs:
    container_name: ${W9_ID}
    image: ${W9_REPO}:${W9_VERSION}
    restart: unless-stopped
    env_file:
      - .env
    cpus: 0.5
    ports:
      - ${W9_HTTP_PORT_SET}:80
    expose:
      - '80'
      - '443'
    environment:
      - AMQP_URI=amqp://guest:guest@${W9_ID}-rabbitmq
    volumes:
      - data:/var/www/onlyoffice/Data
      - log:/var/log/onlyoffice
      - db:/var/lib/postgresql
      - lib:/var/lib/onlyoffice
      - cache:/var/lib/redis
      - mq:/var/lib/rabbitmq
      - fonts:/usr/share/fonts/truetype/custom
      - forgotten:/var/lib/onlyoffice/documentserver/App_Data/cache/files/forgotten

  rabbitmq:
    container_name: ${W9_ID}-rabbitmq
    image: rabbitmq
    restart: unless-stopped
    expose:
      - '5672'

networks:
  default:
    name: ${W9_NETWORK}
    external: true

volumes:
  data:
  log:
  db:
  lib:
  cache:
  mq:
  fonts:
  forgotten:
igwyd commented 8 months ago

Hello @chendelin1982, how OS, docker version do you use? Are you complying Hardware requirements?

chendelin1982 commented 8 months ago

Hello @chendelin1982, how OS, docker version do you use? Are you complying Hardware requirements?

Hello, my information

[root@iZj6cc358fhj9s0et76dbrZ ~]# cat /etc/os-release 
NAME="Rocky Linux"
VERSION="9.2 (Blue Onyx)"
ID="rocky"
ID_LIKE="rhel centos fedora"
VERSION_ID="9.2"
PLATFORM_ID="platform:el9"
PRETTY_NAME="Rocky Linux 9.2 (Blue Onyx)"
ANSI_COLOR="0;32"
LOGO="fedora-logo-icon"
CPE_NAME="cpe:/o:rocky:rocky:9::baseos"
HOME_URL="https://rockylinux.org/"
BUG_REPORT_URL="https://bugs.rockylinux.org/"
SUPPORT_END="2032-05-31"
ROCKY_SUPPORT_PRODUCT="Rocky-Linux-9"
ROCKY_SUPPORT_PRODUCT_VERSION="9.2"
REDHAT_SUPPORT_PRODUCT="Rocky Linux"
REDHAT_SUPPORT_PRODUCT_VERSION="9.2"

[root@iZj6cc358fhj9s0et76dbrZ ~]# docker version
Client: Docker Engine - Community
 Version:           24.0.7
 API version:       1.43
 Go version:        go1.20.10
 Git commit:        afdd53b
 Built:             Thu Oct 26 09:09:13 2023
 OS/Arch:           linux/amd64
 Context:           default

Server: Docker Engine - Community
 Engine:
  Version:          24.0.7
  API version:      1.43 (minimum version 1.12)
  Go version:       go1.20.10
  Git commit:       311b9ff
  Built:            Thu Oct 26 09:07:45 2023
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.26
  GitCommit:        3dd1e886e55dd695541fdcd67420c2888645a495
 runc:
  Version:          1.1.10
  GitCommit:        v1.1.10-0-g18a0cb0
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0
igwyd commented 7 months ago

I tested the onlyoffice-documentserver container on Rocky Linux and it took about ~5 minutes. I have 2cpu 4ram, maybe your stand has less resources?

fat115 commented 6 months ago

Hello, Same thing here using docker image 8.0.1.1

# cat /etc/os-release 
NAME="Rocky Linux"
VERSION="9.3 (Blue Onyx)"
ID="rocky"
ID_LIKE="rhel centos fedora"
VERSION_ID="9.3"
PLATFORM_ID="platform:el9"
PRETTY_NAME="Rocky Linux 9.3 (Blue Onyx)"
ANSI_COLOR="0;32"
LOGO="fedora-logo-icon"
CPE_NAME="cpe:/o:rocky:rocky:9::baseos"
HOME_URL="https://rockylinux.org/"
BUG_REPORT_URL="https://bugs.rockylinux.org/"
SUPPORT_END="2032-05-31"
ROCKY_SUPPORT_PRODUCT="Rocky-Linux-9"
ROCKY_SUPPORT_PRODUCT_VERSION="9.3"
REDHAT_SUPPORT_PRODUCT="Rocky Linux"
REDHAT_SUPPORT_PRODUCT_VERSION="9.3"

]# docker version
Client: Docker Engine - Community
 Version:           25.0.1
 API version:       1.44
 Go version:        go1.21.6
 Git commit:        29cf629
 Built:             Tue Jan 23 23:11:10 2024
 OS/Arch:           linux/amd64
 Context:           default

Server: Docker Engine - Community
 Engine:
  Version:          25.0.1
  API version:      1.44 (minimum version 1.24)
  Go version:       go1.21.6
  Git commit:       71fa3ab
  Built:            Tue Jan 23 23:09:30 2024
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.27
  GitCommit:        a1496014c916f9e62104b33d1bb5bd03b0858e59
 runc:
  Version:          1.1.11
  GitCommit:        v1.1.11-0-g4bccb38
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

on a server with 4 CPU (Xeon E5-2407) and 24GB RAM.

Using an external rabbitmq container solves the problem (thanks to @chendelin1982 for the tip).

I waited for 10-15 minutes on each try and it's always stuck. On first try, a timeout occurs according to the logs of the container. I've tried with image 7.5, 8.0.0 and 8.0.1.1 with same result each time.

So I've done a test on another computer

$ cat /etc/os-release 
NAME="Manjaro Linux"
PRETTY_NAME="Manjaro Linux"
ID=manjaro
ID_LIKE=arch
BUILD_ID=rolling
ANSI_COLOR="32;1;24;144;200"
HOME_URL="https://manjaro.org/"
DOCUMENTATION_URL="https://wiki.manjaro.org/"
SUPPORT_URL="https://forum.manjaro.org/"
BUG_REPORT_URL="https://docs.manjaro.org/reporting-bugs/"
PRIVACY_POLICY_URL="https://manjaro.org/privacy-policy/"
LOGO=manjarolinux

$ docker version 
Client:
 Version:           25.0.2
 API version:       1.44
 Go version:        go1.21.6
 Git commit:        29cf629222
 Built:             Thu Feb  1 10:50:44 2024
 OS/Arch:           linux/amd64
 Context:           default

Server:
 Engine:
  Version:          25.0.2
  API version:      1.44 (minimum version 1.24)
  Go version:       go1.21.6
  Git commit:       fce6e0ca9b
  Built:            Thu Feb  1 10:50:44 2024
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          v1.7.13
  GitCommit:        7c3aca7a610df76212171d200ca3811ff6096eb8.m
 runc:
  Version:          1.1.12
  GitCommit:        
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

Hardware : i5-9400F + 32GB RAM

It tooked ~8 minutes to the stack to start. Using an external rabbitmq server, it takes less than 15 seconds !

igwyd commented 6 months ago

@fat115 Thank you for report, i checked and agree, this is bug, issue #66631

ascii1b commented 6 months ago

I found related https://github.com/ONLYOFFICE/Docker-DocumentServer/issues/491, where the solution was to set a filelimit with ulimit on the container. At least for me this seemed to solve the problem. So the limit should be just integrated into the container.

igwyd commented 1 week ago

Fix will be released in the next major release.