Discussion sur un Raspberry Pi | Blog

J’essaie de faire fonctionner Discourse sur un Raspberry Pi 4 depuis quelques mois et je n’ai eu aucun succès.

Il semblait que l’image Docker était peut-être obsolète, j’ai donc désinstallé et réinstallé deux autres images Docker et toujours aucun succès.

Des suggestions ?

1 « J'aime »

Oui, installez une distribution arm64 sur votre Pi.

Il a fallu quelques années à la Raspberry Pi Foundation pour publier l’architecture logicielle correcte car ils développaient encore pour du matériel 32 bits. Veuillez changer votre image pour la version arm64 actuelle. La bonne nouvelle est que cela vous permettra d’utiliser les 8 Go de RAM si c’est votre appareil.

1 « J'aime »

Je semble déjà exécuter arm64 et cela ne fonctionne pas.

1 « J'aime »

Vous devriez confirmer ce que vous exécutez.

cat /proc/cpuinfo

1 « J'aime »

Ouf, c’était beaucoup de données et, honnêtement, beaucoup de choses sont inconnues. Quelle ligne spécifie ce que j’exécute ?

1 « J'aime »

Je pense que
uname -a
devrait aider ici.

2 « J'aime »

Merci !
Résultats :
Linux raspberrypi 6.1.21-v8+ #1642 SMP PREEMPT Mon Apr 3 17:24:16 BST 2023 aarch64 GNU/Linux

1 « J'aime »

Hmm, eh bien, c’est un noyau 64 bits (aarch64), et pourtant vous avez eu un message Docker se plaignant d’armv8. Je ne connais pas ce territoire ni toute l’histoire de la façon dont vous êtes arrivé ici… un conseil courant est de faire une sauvegarde sûre et de restaurer dans un système d’exploitation frais et une nouvelle installation de Discourse.

J’espère que ce n’est pas le cas qu’une installation réussie aura inévitablement des problèmes au moment de la mise à niveau.

1 « J'aime »

Quel est le résultat de votre docker info ?

En particulier la ligne qui dit Architecture :.

1 « J'aime »

Architecture du processeur : 8

1 « J'aime »

lol, je l’ai fait plusieurs fois et je suis prêt à le refaire.

Actuellement, j’utilise un Raspberry Pi 400 Rev 1.0 sous Bullseye 64 lite.
J’ai essayé Bullseye 64, 64 lite, 32 lite ; et Bookworm 64. Si je me souviens bien, j’obtiens la même erreur que celle que j’ai postée dans chaque cas.

Après avoir examiné la question, un ami m’a suggéré de reflasher sur Bullseye 64 lite et que cela devrait résoudre le problème. Mais ce ne fut pas le cas.

Note annexe, lorsque j’exécute le docker sudo docker run hello-world, il produit le message attendu “Docker is working”.

1 « J'aime »

Pas celui-là :stuck_out_tongue: . Veuillez coller la sortie entière.

3 « J'aime »

sudo docker info
Client: Docker Engine - Community
Version: 24.0.7
Context: default
Debug Mode: false
Plugins:
buildx: Docker Buildx (Docker Inc.)
Version: v0.11.2
Path: /usr/libexec/docker/cli-plugins/docker-buildx
compose: Docker Compose (Docker Inc.)
Version: v2.21.0
Path: /usr/libexec/docker/cli-plugins/docker-compose

Server:
Containers: 2
Running: 1
Paused: 0
Stopped: 1
Images: 4
Server Version: 24.0.7
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Using metacopy: false
Native Overlay Diff: true
userxattr: false
Logging Driver: json-file
Cgroup Driver: systemd
Cgroup Version: 2
Plugins:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: io.containerd.runc.v2 runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 3dd1e886e55dd695541fdcd67420c2888645a495
runc version: v1.1.10-0-g18a0cb0
init version: de40ad0
Security Options:
seccomp
Profile: builtin
cgroupns
Kernel Version: 6.1.21-v8+
Operating System: Debian GNU/Linux 11 (bullseye)
OSType: linux
Architecture: aarch64
CPUs: 4
Total Memory: 3.705GiB
Name: raspberrypi
ID: 183a2a7a-8acf-40eb-9386-c99d70ee8ed3
Docker Root Dir: /var/lib/docker
Debug Mode: false
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false

WARNING: No memory limit support
WARNING: No swap limit support

1 « J'aime »

Impossible de le faire fonctionner sur un Raspberry Pi 4 avec 8 Go de RAM et un SSD connecté via USB comme unique disque. Il continue de se bloquer sur ce qui suit (ou du moins, je perds patience après une heure d’attente…)

I, [2024-02-06T00:58:51.743994 #1]  INFO -- : cd /var/www/discourse && su discourse -c 'yarn install --frozen-lockfile && yarn cache clean'
warning "@discourse/lint-configs > eslint-plugin-ember > ember-eslint-parser@0.2.5" has unmet peer dependency "@typescript-eslint/parser@^6.15.0".
warning "@discourse/lint-configs > eslint-plugin-ember > ember-eslint-parser@0.2.5" has incorrect peer dependency "typescript@^5.3.3".
warning "> @glint/environment-ember-loose@1.3.0" has unmet peer dependency "@glimmer/component@^1.1.2".
2024-02-06 01:15:58.966 UTC [64] WARNING:  worker took too long to start; canceled
2024-02-06 01:16:19.640 UTC [480] WARNING:  autovacuum worker started without a worker entry
2024-02-06 01:21:46.504 UTC [64] WARNING:  worker took too long to start; canceled
2024-02-06 01:22:18.863 UTC [481] WARNING:  autovacuum worker started without a worker entry

Il semble qu’il soit toujours en train de faire des choses :

Tasks:  60 total,   7 running,  53 sleeping,   0 stopped,   0 zombie
%Cpu(s): 20.8 us, 60.5 sy,  0.0 ni,  0.0 id,  0.0 wa,  0.0 hi, 18.8 si,  0.0 st 
MiB Mem :   7807.7 total,   6783.7 free,    954.0 used,     70.0 buff/cache     
MiB Swap:      0.0 total,      0.0 free,      0.0 used.   6853.8 avail Mem 

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND                                                                                                    
   3422 root      20   0 1928888  33180   2512 S  40.6   0.4  28:18.52 dockerd                                                                                                    
   9922 root      20   0 1105300   9984   2944 S  30.2   0.1   1:02.72 docker                                                                                                     
   3362 root      20   0 1934276  19060   1408 S  20.8   0.2  20:24.57 containerd                                                                                                 
   9416 ubuntu    20   0 1148560 298160      0 R  12.0   3.7  10:03.66 node                                                                                                       
   9158 dnsmasq   20   0   54992   2432    128 R  11.7   0.0   5:01.56 redis-server                                                                                               
   8997 root      20   0 1238120   5704    256 S  10.7   0.1   9:06.51 containerd-shim                                                                                            
   9504 ubuntu    20   0  569128  51532      0 R   8.8   0.6   5:20.97 node                                                                                                       
   9930 pollina+  20   0  353212   5692   3328 R   6.8   0.1   0:06.97 postmaster                                                                                                 
   9931 pollina+  20   0  352820   4156   2048 R   5.2   0.1   0:02.70 postmaster                                                                                                 
   9098 pollina+  20   0  352844   3004   1024 R   2.3   0.0   0:15.75 postmaster                                                                                                 
    219 root      20   0 1259732  36000  20352 S   1.0   0.5   1:10.50 cloudflared                                                                                                
   9658 root      20   0    9116   4864   2816 R   0.6   0.1   0:18.19 top                  

Ce serait bien si la compilation incluait une barre de progression.

Quelle est la meilleure façon de :

  • savoir ce qu’il fait ?
  • l’arrêter en toute sécurité pour réessayer ? J’ai déjà essayé sudo shutdown --reboot 0, mais cela a détruit la base de données postgres et j’ai dû recommencer la machine.
1 « J'aime »

Vous pouvez rechercher les messages que vous recevez sur le forum et sur Internet. Essayez également de déplacer ceci dans un nouveau message au lieu d’une réponse à l’annonce.

Tapez-le dans la recherche et vous verrez les résultats. Répétez avec ce que vous avez posté sur le forum et sur Internet ; cela devrait vous donner beaucoup d’informations.
https://meta.discourse.org/search?q=has%20unmet%20peer%20dependency

1 « J'aime »

Cette étape n’est pas une étape de compilation, mais elle télécharge simplement des fichiers JS. Il s’agit d’une quantité absurde de petits fichiers, donc je suppose que c’est un cas pathologiquement mauvais pour la solution de stockage inhabituelle que vous utilisez ?

7 « J'aime »

D’accord, je vais le laisser tourner pendant quelques jours alors. Sinon, je suppose qu’au lieu d’un rpi4 avec SSD, il faudra un rpi5 avec SSD.

MISE À JOUR :

Quelques heures plus tard et après avoir lu davantage, j’ai décidé de changer le conteneur lxd de l’utilisation d’un pool de stockage btrfs à l’utilisation d’un pool de stockage zfs. Une fois cela fait, il a pu progresser au-delà de ce point en environ 5 minutes (alors qu’avec btrfs, il bloquait pendant environ une heure avant que les workers ne commencent à échouer).

Il est toujours en cours de construction, cependant, une fois qu’il aura terminé et que j’aurai pu importer avec succès la sauvegarde et régler le SSL de Cloudflare, je publierai ma migration de discourse docker fonctionnant dans un scaleway, vers discourse docker fonctionnant dans un conteneur lxd dans un raspberry pi 4 + SSD.

MISE À JOUR 2 :

4 « J'aime »

Pourquoi utilisiez-vous une instance bare metal ?

1 « J'aime »

@Falco un peu en retard, mais je rencontre le même problème.

J’ai suivi le guide d’installation sur un Pi 5, sous arm64. Des idées pour résoudre ce problème ?

1 « J'aime »

Quel système d’exploitation utilisez-vous ?