NextCloud via Docker - erreur aux lancement du container

Dimebag Darrell

Padawan
21 Avril 2020
122
11
18
Bonjour tout le monde,

Voici l'erreur que j'ai dans les logs lors de l'installation de Nextcloud sur un synology

Voici l'erreur
Code:
[Wed Mar 22 16:10:28.521884 2023] [access_compat:error] [pid 45] [client 192.168.208.1:37820] AH01797: client denied by server configuration: /var/www/html/data/htaccesstest.txt

Voici mon docker compose que je lance en stack via portainer.

Code:
version: '3.9'
services:
  mariadb:
    container_name: Synology_Nextcloud-DB
    image: mariadb:jammy
    security_opt:
      - no-new-privileges:true
    user: 1026:100
    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW --innodb-read-only-compressed=OFF
    healthcheck:
     test: ["CMD-SHELL", "mysqladmin ping -u root -pmotdepasseroot | grep 'mysqld is alive' || exit 1"]
    volumes:
      - /volume1/docker/nextcloud/db:/var/lib/mysql:rw
    environment:
      - MYSQL_ROOT_PASSWORD=motdepasseroot
      - MYSQL_PASSWORD=mdp12345
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
    restart: on-failure:5
      
  redis:
    image: redis
    container_name: Synology_Nextcloud-REDIS
    user: 1026:100
    healthcheck:
     test: ["CMD-SHELL", "redis-cli ping || exit 1"]
    volumes:
      - /volume1/docker/nextcloud/redis:/data:rw
    environment:
      restart: on-failure:5
      
  nextcloud:
    container_name: Synology_Nextcloud
    ports:
      - 8082:80
    depends_on:
      mariadb:
       condition: service_started
      redis:
       condition: service_healthy
    environment:
      - REDIS_HOST=Synology_Nextcloud-REDIS
      - NEXTCLOUD_TRUSTED_DOMAINS=cloud.server.xyz 192.168.x.x
      - TRUSTED_PROXIES=cloud.server.xyz 192.168.x.x
      - OVERWRITEHOST=cloud.server.xyz
      - OVERWRITEPROTOCOL=https
      - MYSQL_PASSWORD=mdp1234
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
      - MYSQL_HOST=mariadb
    healthcheck:
     test: curl -f http://localhost:80/ || exit 1
    volumes:
      - /volume1/docker/nextcloud/html:/var/www/html:rw
      - /volume1/docker/nextcloud/custom_apps:/var/www/html/custom_apps:rw
      - /volume1/docker/nextcloud/config:/var/www/html/config:rw
      - /volume1/docker/nextcloud/data:/var/www/html/data:rw
      - /volume1/docker/nextcloud/themes:/var/www/html/themes:rw
    image: nextcloud
    restart: on-failure:5
    
    av:
     image: mkodockx/docker-clamav:alpine
     container_name: Synology_Nextcloud_AV
 
Hello, qu'y a t-il dans le fichier htaccess qui est mentionné dans le log? Il me semblait que ce fichier était utilisé pour les serveurs web Apache, mais j'ai un GROS doute
Message automatiquement fusionné :

Redis est un serveur de cache, nextcloud déconseille de l'utiliser pour un particulier, dans un premier temps il serait peut être plus judicieux de ne pas mettre en place redis, et d'essayer de faire tourner une instance "minimale"
 
Vu que c'est un fichier de configuration il y'a certainement des paramètres qui sont propres à ton installation, donc il faut voir si tous ces paramètres sont bien ajustés ?
Enfait, depuis, j'ai changé mon docker compose et je me suis basé sur le tutorial d'@EVOTk
Par contre d'autres problèmes sont survenus tels que
l'URL de sondage ne commence pas par HTTPS alors que l'URL de connection commence par HTTPS, la connection ne sera pas possible car cela pourrait être un problème de sécurité, veuillez contacter votre administrateur (euhh c'est moi lol)
et des problèmes de connections avec le client macos

Code:
version: '2'

services:
  db:
    container_name: Synology_Nextcloud-DB
    image: mariadb:latest
    restart: always
    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
    volumes:
      - /volume1/docker/nextcloud/database:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=mdproot
      - MYSQL_PASSWORD=mdpsql
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud

  app:
    container_name: Synology_Nextcloud
    image: nextcloud:latest
    restart: always
    ports:
      - 8082:80
    links:
      - db
    volumes:
      - /volume1/docker/nextcloud/config:/var/www/html
    environment:
      - MYSQL_PASSWORD=mdpsql
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
      - MYSQL_HOST=db
      
  av:
     image: mkodockx/docker-clamav:alpine
     container_name: Synology_Nextcloud_AV
 
Ah je vois que je ne suis pas le seul à dire "mais c'est moi l'admin p***n de machine !!" 😁

Alors attention, tu utilises l'image officielle nextcloud, alors que le tuto d'evotk prends celle de linuxserver.
Soit dit au passage, @EVOTk il me semble que l'image linuxserver php8 est dépréciée ? Il y'a peut être une petite modif du docker compose du tuto à faire pour le nom d'image ;-)

@Dimebag Darrell tu peux tenter avec l'image linuxserver et nous dire si tes bugs persistent ? Il va certainement falloir que tu vides tes dossiers config et data par contre...

La dernière image linuxserver est linuxserver/nextcloud:latest, il te faudra donc modifier ton docker compose vers ça (je ne mets que le bloc concernant nextcloud)
YAML:
app:
    container_name: Synology_Nextcloud
    image: linuxserver/nextcloud:latest
    restart: always
    ports:
      - 8082:80
    links:
      - db
    volumes:
      - /volume1/docker/nextcloud/config:/var/www/html
    environment:
      - MYSQL_PASSWORD=mdpsql
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
      - MYSQL_HOST=db

Attention il me semble qu'il te manque un dossier/volumes pour /data, cf le compose d'evotk

EDIT: il te manque également les puid/pgid, TZ... -> cf le compse d'evotk
 
Voila, ça fonctionne, mais j'ai eu un message d'erreur lors de la première installation concernant .htaccess
Your data directory and your files are probably accessible from the internet. The .htaccess file that ownCloud provides is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root…”
malgré tout j'ignore le message d'erreur et ça passe

Par contre, le même comportement avec le client Windows/Mac
l'url du sondage ne commence pas par https alors que l'URL de connection commence par https...

Je fais essayer une manip dans le fichier config.php, je vous tiens au courant (il va déjà falloir le trouver...)

Bizarrement, le dossier config sur mon serveur est complètement vide... !

Je ne sais pas non plus si c'est normal, la création de documents prend une plombe
est-ce une limitation de performance de mon syno (DS 718+ et 16go ram), NextCloud ne semble pas toujours hyper réactif (via la webapp dans chrome)
 
Dernière édition:
Hello! Bonne nouvelle ça avance!

Partage nous ton compose en l'état actuel et ton config.php (il est dans le dossier config de nextcloud).

Je risque de ne pas répondre rapidement ce week-end, pas chez moi...
 
Salut @Nincha
C'est déjà super cool d'avoir du support
Voici le docker compose (stack dans portainer)

Screenshot : le dossier dans file station du syno (/volume1/docker/nextcloud/config
Vide :-/
Code:
version: '2'

services:
  db:
    container_name: Synology_Nextcloud-DB
    image: mariadb:latest
    restart: always
    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
    volumes:
      - /volume1/docker/nextcloud/database:/var/lib/mysql
    environment:
      - PUID=1026
      - PGID=100
      - TZ=Europe/Paris
      - MYSQL_ROOT_PASSWORD=mdproot
      - MYSQL_PASSWORD=mdpSQL
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud

  app:
    container_name: Synology_Nextcloud
    image: linuxserver/nextcloud:latest
    restart: always
    ports:
      - 8082:80
    links:
      - db
    volumes:
      - /volume1/docker/nextcloud/config:/var/www/html
    environment:
      - PUID=1026
      - PGID=1000
      - TZ=Europe/Paris
      - MYSQL_PASSWORD=mdpSQL
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
      - MYSQL_HOST=db
      
  av:
     image: mkodockx/docker-clamav:alpine
     container_name: Synology_Nextcloud_AV
 

Pièces jointes

  • Capture d’écran 1.png
    Capture d’écran 1.png
    52.6 KB · Affichages: 5
Deux choses dans tes volumes pour nextcloud.
  • Le volume qui pointe vers config. Le chemin interne du container (donc après les ':' n'est pas bon :
    Code:
    volumes:
          - /volume1/docker/nextcloud/config:/config
  • Il te manque le chemin vers le dossier interne data du container, donc si je prends le même chemin que tu as déjà mis:
    CODE]
    - /volume1/docker/nextcloud/data:/data[/CODE]. Soit bien sûr d'avoir créé le dossier correspondant sur ton nas

Enfin il y'a aussi ton lien vers le container mariadb. Tu as mis links, je pense que c'est plutôt depends_on. J'insiste, mais prends bien le temps de relire et comparer ton compose par rapport à celui du tuto d'evotk, tu vas trouver tout seul ce qui manque 🙂
 
Voila mon fichier de config, si cela peut t'aider.

Je suis resté sur la version 'php8', la version 'latest' ne fonctionne plus chez moi -> problème de compatibilité avec la version php de l'image que je n'ai pas réussi à résoudre en suivant les tutos.

Code:
version: "3"
services:
  nextcloud:
    image: lscr.io/linuxserver/nextcloud:php8
    container_name: nextcloud
    environment:
      - PUID=1003
      - PGID=100  
      - TZ=Europe/Paris
      - MYSQL_PASSWORD_FILE=/run/secrets/mysql-password
    secrets:
      - mysql-password
    networks:
      - mariadb_default
      - swag_default
    volumes:
      - /srv/disk1/docker/config/nextcloud:/config
      - /srv/disk1/nextcloud:/data
    external_links:
      - mariadb
    pids_limit: 100
    mem_limit: 500m
    cpus: 0.5
    cpu_shares: 512
    restart: unless-stopped
networks:
    swag_default:
      external: true
    mariadb_default:
      external: true
secrets:
  mysql-password:
    file: /cheminsecret/secrets_mysql-password.txt
 
  • J'aime
Réactions: Nincha
ça ne fonctionne pas non plus :-/
Voici le message d'erreur maintenant
Error while trying to create admin user: Failed to connect to the database: An exception occurred in the driver: SQLSTATE[HY000] [2002] No such file or directory
 
Code:
version: '2'

services:
  db:
    container_name: Synology_Nextcloud-DB
    image: linuxserver/mariadb
    restart: always
    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
    volumes:
      - /volume1/docker/nextcloud/data:/data
    environment:
      - PUID=1026
      - PGID=100
      - TZ=Europe/Paris
      - MYSQL_ROOT_PASSWORD=mdproot
      - MYSQL_PASSWORD=mdpsql
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud

  app:
    container_name: Synology_Nextcloud
    image: linuxserver/nextcloud
    restart: always
    ports:
      - 8082:80
    depends_on:
      - db
    volumes:
      - /volume1/docker/nextcloud/config:/config
    environment:
      - PUID=1026
      - PGID=1000
      - TZ=Europe/Paris
      - MYSQL_PASSWORD=mdpsql
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
      - MYSQL_HOST=db
    
  av:
     image: mkodockx/docker-clamav:alpine
     container_name: Synology_Nextcloud_AV
 
Tu as fait le choix de mettre un nom de containeur différent du nom de service mais il me semble que l’hôte doit avoir le nom du containeur -> essaye avec 'Synology_Nextcloud-DB' et pas 'db'.

Tu as aussi deux PGID différent (100 et 1000), est ce voulu ?