Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
application:nextcloud [2025/03/05 17:58] – [Использование] mirocowapplication:nextcloud [2025/11/28 07:56] (текущий) 78.138.161.134
Строка 3: Строка 3:
 ====== Nextcloud ====== ====== Nextcloud ======
  
-  * /var/www/html - Основная папка, необходимая для обновления+  * /var/www/html - вная папка, необходимая для обновления
   * /var/www/html/custom_apps - установленные/измененные приложения   * /var/www/html/custom_apps - установленные/измененные приложения
   * /var/www/html/config - локальная конфигурация   * /var/www/html/config - локальная конфигурация
   * /var/www/html/data - фактические данные вашего Nextcloud   * /var/www/html/data - фактические данные вашего Nextcloud
   * /var/www/html/themes/<YOUR_CUSTOM_THEME> - тематизация/брендинг   * /var/www/html/themes/<YOUR_CUSTOM_THEME> - тематизация/брендинг
 +
 +====== Сборка ======
 +
 +<code bash>
 +#!/bin/bash
 +
 +export PROD_V=9.04
 +
 +##################################################################################
 +
 +cd /opt
 +git clone https://github.com/thomisus/Docker-DocumentServer.git --branch v$PROD_V
 +cd /opt/Docker-DocumentServer
 +
 +docker build . -t onlyoffice-documentserver-unlimited:$PROD_V  && \
 +docker tag onlyoffice-documentserver-unlimited:$PROD_V ghcr.io/thomisus/onlyoffice-documentserver-unlimited:$PROD_V && \
 +docker tag onlyoffice-documentserver-unlimited:$PROD_V thomisus/onlyoffice-documentserver-unlimited:$PROD_V && \
 +docker push ghcr.io/thomisus/onlyoffice-documentserver-unlimited:$PROD_V &&
 +docker push thomisus/onlyoffice-documentserver-unlimited:$PROD_V && \
 +docker tag onlyoffice-documentserver-unlimited:$PROD_V ghcr.io/thomisus/onlyoffice-documentserver-unlimited:latest && \
 +docker tag onlyoffice-documentserver-unlimited:$PROD_V thomisus/onlyoffice-documentserver-unlimited:latest && \
 +echo "all done" && \
 +docker push ghcr.io/thomisus/onlyoffice-documentserver-unlimited:latest &&
 +docker push thomisus/onlyoffice-documentserver-unlimited:latest
 +</code>
  
 ====== Установка ====== ====== Установка ======
Строка 42: Строка 67:
       - proxy:/etc/nginx       - proxy:/etc/nginx
       - nextcloud:/var/www/html:r       - nextcloud:/var/www/html:r
 +    deploy: 
 +        resources: 
 +            limits: 
 +                cpus: '1' 
 +                memory: 2G
  
   # docker exec -u www-data nextcloud-app php occ config:system:set trusted_domains 4 --value=178.140.10.58   # docker exec -u www-data nextcloud-app php occ config:system:set trusted_domains 4 --value=178.140.10.58
Строка 50: Строка 79:
   # docker exec -u www-data nextcloud-app php occ upgrade   # docker exec -u www-data nextcloud-app php occ upgrade
   app:   app:
-    image: nextcloud:30.0-apache+    image: nextcloud:31.0.8-apache
     container_name: nextcloud-app     container_name: nextcloud-app
     networks:     networks:
Строка 60: Строка 89:
       - db       - db
       - redis       - redis
 +      - cron
 +      - es01
     volumes:     volumes:
       - /etc/localtime:/etc/localtime:ro       - /etc/localtime:/etc/localtime:ro
-      - nextcloud:/var/www/html:rw # Основная папка, необходимая для обновления +      - nextcloud:/var/www/html:rw 
-      #nextcloud_custom_apps:/var/www/html/custom_apps:rw # установленные/измененные приложения +      - crontabs:/cron-scripts:ro
-      #nextcloud_config:/var/www/html/config:rw # локальная конфигурация +
-      #- nextcloud_data:/var/www/html/data:rw # фактические данные вашего Nextcloud +
-      #- nextcloud_themes:/var/www/html/themes:rw # тематизация/брендинг+
     environment:     environment:
       - TZ=Europe/Moscow       - TZ=Europe/Moscow
Строка 73: Строка 101:
       - SKIP_DOMAIN_VALIDATION=true       - SKIP_DOMAIN_VALIDATION=true
     restart: unless-stopped     restart: unless-stopped
- 
     deploy:     deploy:
         resources:         resources:
             limits:             limits:
-                cpus: '3+                cpus: '4
-                memory: 7G+                memory: 10G
     healthcheck:     healthcheck:
       test: ["CMD", "curl", "-f", "http://localhost:80/"]       test: ["CMD", "curl", "-f", "http://localhost:80/"]
Строка 85: Строка 112:
       retries: 3       retries: 3
       start_period: 90s       start_period: 90s
 +
 +  cron:
 +    image: rcdailey/nextcloud-cronjob
 +    restart: unless-stopped
 +    network_mode: none
 +    volumes:
 +      - /etc/localtime:/etc/localtime:ro
 +      - /var/run/docker.sock:/var/run/docker.sock:ro
 +      - crontabs:/cron-scripts
 +    environment:
 +      - NEXTCLOUD_CONTAINER_NAME=nextcloud-app
 +      - NEXTCLOUD_PROJECT_NAME=
 +      - NEXTCLOUD_CRON_MINUTE_INTERVAL=5
 +    deploy:
 +        resources:
 +            limits:
 +                cpus: '1'
 +                memory: 2G
  
   # http://nextcloud-drawio   # http://nextcloud-drawio
Строка 94: Строка 139:
     expose:     expose:
       - '8080'       - '8080'
-    depends_on: 
-      - image-export 
     environment:     environment:
       - DRAWIO_SELF_CONTAINED=1       - DRAWIO_SELF_CONTAINED=1
       - EXPORT_URL=http://image-export:8000/       - EXPORT_URL=http://image-export:8000/
 +      - PLANTUML_URL=http://plantuml-server:8080/
       # - PLANTUML_URL=http://plantuml-server:8080/       # - PLANTUML_URL=http://plantuml-server:8080/
       # - DRAWIO_BASE_URL=${DRAWIO_BASE_URL}       # - DRAWIO_BASE_URL=${DRAWIO_BASE_URL}
     restart: unless-stopped     restart: unless-stopped
 +    healthcheck:
 +      test: ["CMD-SHELL", "curl -f http://domain:8080 || exit 1"]
 +      interval: 1m30s
 +      timeout: 10s
 +      retries: 5
 +      start_period: 10s
 +    deploy:
 +        resources:
 +            limits:
 +                cpus: '2'
 +                memory: 2G
  
   # http://image-export:8000/   # http://image-export:8000/
Строка 109: Строка 164:
     expose:     expose:
       - "8000"       - "8000"
 +    depends_on:
 +      - drawio
     networks:     networks:
       nextcloud_network:       nextcloud_network:
Строка 116: Строка 173:
       #- ./fonts:/usr/share/fonts/drawio        #- ./fonts:/usr/share/fonts/drawio 
     restart: unless-stopped     restart: unless-stopped
 +    # deploy:
 +    #     resources:
 +    #         limits:
 +    #             cpus: '2'
 +    #             memory: 2G
 +
 +  plantuml-server:
 +    image: plantuml/plantuml-server
 +    expose:
 +      - "8080"
 +    networks:
 +      nextcloud_network:
 +    depends_on:
 +      - drawio
 +    restart: unless-stopped
 +    deploy:
 +        resources:
 +            limits:
 +                cpus: '2'
 +                memory: 2G
  
   # ONLYOFFICE Docs address: /ds-vpath/   # ONLYOFFICE Docs address: /ds-vpath/
   # ONLYOFFICE Docs address for internal requests from the server: /nextcloud-onlyoffice/   # ONLYOFFICE Docs address for internal requests from the server: /nextcloud-onlyoffice/
 +  # This build of onlyoffice community edition ( documentserver ) has connections limits increased to 9999 ( instead of default 20 )
   onlyoffice:   onlyoffice:
     container_name: nextcloud-onlyoffice     container_name: nextcloud-onlyoffice
-    image: onlyoffice/documentserver:latest+    image: onlyoffice/documentserver:9.0.4 
 +    image: thomisus/onlyoffice-documentserver-unlimited:9.0.4 
 +    stdin_open: true 
 +    tty: true
     environment:     environment:
       - JWT_SECRET=secret       - JWT_SECRET=secret
Строка 129: Строка 210:
     expose:     expose:
       - '80'       - '80'
-      # - '443' 
     volumes:     volumes:
       - document_data:/var/www/onlyoffice/Data       - document_data:/var/www/onlyoffice/Data
       - document_log:/var/log/onlyoffice       - document_log:/var/log/onlyoffice
- +    deploy
-  cron+        resources
-    imagercdailey/nextcloud-cronjob +            limits
-    restartunless-stopped +                cpus'2' 
-    network_modenone +                memory2G
-    depends_on: +
-    - app +
-    volumes: +
-    - /etc/localtime:/etc/localtime:ro +
-    - /var/run/docker.sock:/var/run/docker.sock:ro +
-    - crontabs:/cron-scripts +
-    environment: +
-    - NEXTCLOUD_CONTAINER_NAME=nextcloud-app +
-    - NEXTCLOUD_PROJECT_NAME= +
-    - NEXTCLOUD_CRON_MINUTE_INTERVAL=5+
  
   db:   db:
Строка 170: Строка 240:
         resources:         resources:
             limits:             limits:
-                cpus: '2+                cpus: '4
-                memory: 4G+                memory: 8G
  
   redis:   redis:
     image: redis:alpine     image: redis:alpine
     restart: unless-stopped     restart: unless-stopped
 +    volumes:
 +      - redis01:/data
     deploy:     deploy:
         resources:         resources:
Строка 211: Строка 283:
     networks:     networks:
       nextcloud_network:       nextcloud_network:
 +    deploy: 
 +        resources: 
 +            limits: 
 +                cpus: '2' 
 +                memory: 4G 
 +      
 volumes: volumes:
   proxy:   proxy:
Строка 220: Строка 297:
   document_log:   document_log:
   data01:   data01:
 +  redis01:
 +  screenshoter:
      
- 
 networks: networks:
   nextcloud_network:    nextcloud_network: 
Строка 463: Строка 541:
     }     }
 } }
 +</code>
 +
 +===== Продолжение настройки =====
 +
 +<code bash>
 +$ docker exec nextcloud-app rm /var/spool/cron/crontabs/www-data
 </code> </code>
  
Строка 540: Строка 624:
  
 <code bash> <code bash>
 +$ docker exec nextcloud-app chown www-data:www-data -R custom_apps/
 $ docker exec -u www-data nextcloud-app bash -c 'cd /var/www/html/custom_apps && ls -la' $ docker exec -u www-data nextcloud-app bash -c 'cd /var/www/html/custom_apps && ls -la'
 </code> </code>
 +
 +===== Debug =====
 +
 +<code bash>
 +$ docker exec nextcloud-app pecl install xdebug && \
 +docker exec nextcloud-app docker-php-ext-enable xdebug && \
 +docker exec nextcloud-app rm -rf /tmp/pear && \
 +docker exec nextcloud-app bash -c 'echo "xdebug.mode=debug
 +xdebug.start_with_request=yes
 +xdebug.client_host=host.docker.internal
 +;# 9003 is now the default (set this for old PhpStorm settings).
 +xdebug.client_port=9000" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini;'; \
 +    php -i|grep xdebug
 +</code>
 +