Nextcloud und collabora mit docker

Hallo,

ich verwende die untenstehende docker-compose-Datei um moodle und nextcloud zusammen mit nginx als reverse-Proxy und Let’s encrypt zu verwenden. Das klappt auch soweit. Jetzt würde ich gerne noch Collabora im docker laufen lassen und mit nextcloud verbinden. Das klappt aber nicht. Möchte ich eine .odt Datei editieren, wird die Seite weiß und nichts passiert mehr. In den Logs steht dann

GuzzleHttp\Exception\ConnectException: cURL error 7: Failed to connect to office.meine-schule.de port 9980: Connection timed out (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)

Was müsste man sehen, wenn ich office.meine-schule.de direkt aufrufe?

Besten Dank, Martin

version: "2"

services:
  nginx:
    restart: always
    image: nginx
    container_name: nginx
    networks: 
     - proxy-net
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - "/etc/nginx/conf.d"
      - "/etc/nginx/vhost.d"
      - "/usr/share/nginx/html"
      - "./volumes/proxy/certs:/etc/nginx/certs:ro"

  nginx-gen:
    restart: always
    image: jwilder/docker-gen
    container_name: nginx-gen
    networks: 
     - proxy-net
    volumes:
      - "/var/run/docker.sock:/tmp/docker.sock:ro"
      - "./volumes/proxy/templates/nginx.tmpl:/etc/docker-gen/templates/nginx.tmpl:ro"
    volumes_from:
      - nginx
    entrypoint: /usr/local/bin/docker-gen -notify-sighup nginx -watch -wait 5s:30s /etc/docker-gen/templates/nginx.tmpl /etc/nginx/conf.d/default.conf

  letsencrypt-nginx-proxy-companion:
    restart: always
    image: jrcs/letsencrypt-nginx-proxy-companion
    container_name: letsencrypt-nginx-proxy-companion
    networks: 
     - proxy-net
    volumes_from:
      - nginx
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock:ro"
      - "./volumes/proxy/certs:/etc/nginx/certs:rw"
    environment:
      - NGINX_DOCKER_GEN_CONTAINER=nginx-gen

##############
### MOODLE ###
##############

  mariadb:
    image: bitnami/mariadb:latest
    networks: 
     - proxy-net
    container_name: mariadb
    environment:
      - MARIADB_USER=db_moodle
      - MARIADB_DATABASE=moodle
      - ALLOW_EMPTY_PASSWORD=no
      - MARIADB_ROOT_PASSWORD=strenggeheim
      - MARIADB_PASSWORD=geheim
    volumes:
      - 'mariadb_data:/bitnami'

  moodle:
    image: bitnami/moodle:latest
    networks: 
     - proxy-net
    environment:
      - MARIADB_HOST=mariadb
      - MARIADB_PORT_NUMBER=3306
      - MOODLE_DATABASE_USER=db_moodle
      - MOODLE_DATABASE_NAME=moodle
      - MOODLE_USERNAME=root
      - MOODLE_EMAIL=admin@meine-schule.de
      - MOODLE_LANGUAGE=en
      - MOODLE_SITENAME=moodle Meine Schule
      - MOODLE_PASSWORD=sehrgeheim
      - ALLOW_EMPTY_PASSWORD=no
      - MOODLE_DATABASE_PASSWORD=sehrgeheim
      - VIRTUAL_HOST=moodle.meine-schule.de
      - VIRTUAL_NETWORK=nginx-proxy
      - VIRTUAL_PORT=80
      - LETSENCRYPT_HOST=moodle.meine-schule.de
      - LETSENCRYPT_EMAIL=admin@meine-schule.de
    volumes:
      - 'moodle_data:/bitnami'
    depends_on:
      - mariadb

#############################
### nextcloud / collabora ###
#############################

  cloud-db:
    container_name: nextclouddb
    image: mariadb:latest
    networks:
      - proxy-net
    restart: always
    volumes:
      - 'nextclouddb_data:/var/lib/mysql'
    environment:
      MYSQL_DATABASE: nextcloud
      MYSQL_ROOT_PASSWORD: strenggeheim
      MYSQL_USER: nextcloud_user
      MYSQL_PASSWORD: geheim

  cloud-app:
    depends_on:
      - cloud-db
    container_name: nextcloud
    image: nextcloud:latest
    networks:
      - proxy-net
    restart: always
    volumes:
      - 'nextcloud:/var/www/html' 
      - 'nextcloud_apps:/var/www/html/custom_apps' 
      - 'nextcloud_config:/var/www/html/config' 
      - 'nextcloud_data:/var/www/html/data' 
    environment:
      - VIRTUAL_NETWORK=nginx-proxy
      - VIRTUAL_PORT=8000
      - VIRTUAL_HOST= cloud.meine-schule.de
      - LETSENCRYPT_HOST=cloud.meine-schule.de
      - LETSENCRYPT_EMAIL=admin@meine-schule.de
#      - MYSQL_DATABASE= ${MYSQL_DATABASE}
#      - MYSQL_USER= ${MYSQL_USER}
#      - MYSQL_PASSWORD= ${MYSQL_PASSWORD}
#      - MYSQL_HOST= ${MYSQL_HOST}



  collabora-code:
    image: collabora/code
    networks:
      - proxy-net
    expose:
      - 9980
    environment:
      - VIRTUAL_HOST=office.meine-schule.de
      - VIRTUAL_PORT=9980
      - VIRTUAL_PROTO=https
      - VIRTUAL_NETWORK=nginx-proxy
      - LETSENCRYPT_HOST=office.meine-schule.de
      - LETSENCRYPT_EMAIL=admin@meine-schule.de
      - domain=cloud\\.meine-schule\\.de
    restart: always
    cap_add:
      - ALL



volumes:
  mariadb_data:
    driver: local
  moodle_data:
    driver: local
  nextclouddb_data:
    driver: local
  nextcloud:
    driver: local
  nextcloud_apps:
    driver: local
  nextcloud_config:
    driver: local
  nextcloud_data:
    driver: local
  document_data:
    driver: local
  document_log:
    driver: local

networks:
  proxy-net:
    driver: bridge
    ipam:
      driver: default
      config:
       - subnet: 172.20.0.0/16
         gateway: 172.20.0.1
1 „Gefällt mir“

Hi Martin,

danke für deine docker-compose.yml. Das hilft mir auch weiter… vllt. frag ich dich mal genauer deswegen.

Hast du den anderen Thread gesehen? Bei mir kamen auch weiße Seiten, weil der “pound” reverse proxy keine websockets erlaubte (scheinbar).
Ich habe auf haproxy umgestellt, was den reverse proxy anging, allerdings stimmt das nur bedingt. Meine Cloud läuft hinter einem nginx reverse proxy, der cloud.meine-schule.de auflöst. Der collabora läuft auf einem anderen dockerhost, deshalb wendet sich die cloud für die Auflösung von office.meine-schule.de bei mir (vermutlich) an den externen haproxy.
Meine interne DNS-Auflösung ist eigentlich auch in Ordnung, d.h. ich weiß selbst nicht, warum der überhaupt bei mir am externen Proxy hing bzw. jetzt noch darüber geht.

VG, Tobias

Nun habe ich es, man darf bei der Eingabe des Collabora Online Server in den Einstellungen bei nextcloud nicht den Port mit angeben, also da gehört nur office.meine-schule.de hin und nicht office.meine-schule.de:9980