Discorso su un Raspberry Pi | Blog

Ho provato a far funzionare discourse su un raspberry pi 4 per un paio di mesi e non ho avuto successo.

Sembrava che forse l’immagine docker fosse obsoleta, quindi ho disinstallato e reinstallato altre due immagini docker e ancora niente.

Qualche suggerimento?

1 Mi Piace

Sì, installa una distribuzione arm64 sul tuo Pi.

Sono voluti un paio d’anni perché la Raspberry Pi Foundation rilasciasse l’architettura software corretta perché stavano ancora sviluppando per hardware a 32 bit. Si prega di cambiare la tua immagine con il rilascio arm64 corrente. La buona notizia è che ti permetterà di utilizzare tutti gli 8 GB di RAM se questo è il tuo dispositivo.

1 Mi Piace

Sembra che stia già eseguendo arm64 e non funziona.

1 Mi Piace

Dovresti confermare cosa stai eseguendo.

cat /proc/cpuinfo

1 Mi Piace

Whew, that was a lot of data and, honestly, a lot is unfamiliar. Which line specifies what I’m running?

1 Mi Piace

Penso che
uname -a
possa aiutare qui.

2 Mi Piace

Grazie!
Risultati:
Linux raspberrypi 6.1.21-v8+ #1642 SMP PREEMPT Mon Apr 3 17:24:16 BST 2023 aarch64 GNU/Linux

1 Mi Piace

Hmm, beh, questo è un kernel a 64 bit (aarch64), eppure hai avuto un messaggio di docker che si lamentava di armv8. Non conosco questo territorio né l’intera storia di come sei arrivato qui… un consiglio comune è fare un backup sicuro e ripristinare su un nuovo sistema operativo e una nuova installazione di discourse.

Spero non sia il caso che un’installazione riuscita abbia inevitabilmente problemi al momento dell’aggiornamento.

1 Mi Piace

Qual è l’output del tuo docker info?

In particolare la riga che dice Architecture:.

1 Mi Piace

Architettura CPU: 8

1 Mi Piace

lol, l’ho fatto molte volte e sono pronto a farlo di nuovo.

Attualmente, sono su un Raspberry Pi 400 Rev 1.0 con Bullseye 64 lite.
Ho provato Bullseye 64, 64 lite, 32 lite; e Bookworm 64. Se ricordo bene, ottengo lo stesso errore che ho postato in ogni caso.

Dopo averci riflettuto un po’, un amico mi ha suggerito di reinstallare Bullseye 64 lite e che questo avrebbe risolto il problema. Ma non è stato così.

Nota a margine, quando eseguo il comando docker sudo docker run hello-world viene visualizzato il messaggio atteso “Docker is working”.

1 Mi Piace

Non quello :stuck_out_tongue: . Incolla l’intero output.

3 Mi Piace

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 Mi Piace

Non riesco a farlo funzionare su un Raspberry Pi 4 con 8 GB di RAM e un SSD collegato tramite USB come disco unico. Continua a bloccarsi con quanto segue (o almeno, divento impaziente dopo un’ora di attesa…)\n\n\nI, [2024-02-06T00:58:51.743994 #1] INFO -- : \u003e cd /var/www/discourse \u0026\u0026 su discourse -c 'yarn install --frozen-lockfile \u0026\u0026 yarn cache clean'\nwarning \"@discourse/lint-configs \u003e eslint-plugin-ember \u003e ember-eslint-parser@0.2.5\" has unmet peer dependency \"@typescript-eslint/parser@^6.15.0\".\nwarning \"@discourse/lint-configs \u003e eslint-plugin-ember \u003e ember-eslint-parser@0.2.5\" has incorrect peer dependency \"typescript@^5.3.3\".\nwarning \" \u003e @glint/environment-ember-loose@1.3.0\" has unmet peer dependency \"@glimmer/component@^1.1.2\".\n2024-02-06 01:15:58.966 UTC [64] WARNING: worker took too long to start; canceled\n2024-02-06 01:16:19.640 UTC [480] WARNING: autovacuum worker started without a worker entry\n2024-02-06 01:21:46.504 UTC [64] WARNING: worker took too long to start; canceled\n2024-02-06 01:22:18.863 UTC [481] WARNING: autovacuum worker started without a worker entry\n\n\nSembra che stia ancora facendo delle cose:\n\n\nTasks: 60 total, 7 running, 53 sleeping, 0 stopped, 0 zombie\n%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 \nMiB Mem : 7807.7 total, 6783.7 free, 954.0 used, 70.0 buff/cache \nMiB Swap: 0.0 total, 0.0 free, 0.0 used. 6853.8 avail Mem \n\n PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND \n 3422 root 20 0 1928888 33180 2512 S 40.6 0.4 28:18.52 dockerd \n 9922 root 20 0 1105300 9984 2944 S 30.2 0.1 1:02.72 docker \n 3362 root 20 0 1934276 19060 1408 S 20.8 0.2 20:24.57 containerd \n 9416 ubuntu 20 0 1148560 298160 0 R 12.0 3.7 10:03.66 node \n 9158 dnsmasq 20 0 54992 2432 128 R 11.7 0.0 5:01.56 redis-server \n 8997 root 20 0 1238120 5704 256 S 10.7 0.1 9:06.51 containerd-shim \n 9504 ubuntu 20 0 569128 51532 0 R 8.8 0.6 5:20.97 node \n 9930 pollina+ 20 0 353212 5692 3328 R 6.8 0.1 0:06.97 postmaster \n 9931 pollina+ 20 0 352820 4156 2048 R 5.2 0.1 0:02.70 postmaster \n 9098 pollina+ 20 0 352844 3004 1024 R 2.3 0.0 0:15.75 postmaster \n 219 root 20 0 1259732 36000 20352 S 1.0 0.5 1:10.50 cloudflared \n 9658 root 20 0 9116 4864 2816 R 0.6 0.1 0:18.19 top \n\n\nSarebbe bello se la compilazione includesse una barra di avanzamento.\n\nQual è il modo migliore per:\n- scoprire cosa sta facendo?\n- spegnerlo in sicurezza per riprovare? Ho provato sudo shutdown --reboot 0 in precedenza, tuttavia ciò ha distrutto il database postgres e ho dovuto rifare la macchina.

1 Mi Piace

Puoi cercare i messaggi che stai ricevendo sul forum e su Internet. Inoltre, prova a spostare questo in un nuovo post invece che come risposta all’annuncio.

Digitalo nella ricerca e vedrai i risultati. Ripeti con quello che hai pubblicato sul forum e su Internet; dovresti ottenere molte informazioni.
https://meta.discourse.org/search?q=has%20unmet%20peer%20dependency

1 Mi Piace

Quel passaggio non è una fase di compilazione, ma si limita a scaricare file JS. Si tratta di una quantità assurda di piccoli file, quindi suppongo che sia un caso patologico negativo per la particolare soluzione di archiviazione che stai utilizzando?

7 Mi Piace

Ok, lo lascerò in esecuzione per qualche giorno allora. Altrimenti, immagino che invece di un rpi4 con ssd, servirà un rpi5 con ssd.

AGGIORNAMENTO:

Ore dopo e dopo aver letto altro, ho deciso di provare a cambiare il container lxd dall’utilizzo di un pool di archiviazione btrfs all’utilizzo di un pool di archiviazione zfs. Una volta fatto, è stato in grado di progredire oltre quel punto in circa 5 minuti (mentre con btrfs si bloccava per circa un’ora prima che i worker iniziassero a fallire).

Sta ancora compilando, tuttavia, una volta terminato e sarò stato in grado di importare correttamente il backup e risolvere il problema SSL di Cloudflare, pubblicherò la mia migrazione da discourse docker in esecuzione all’interno di uno scaleway, a discourse docker in esecuzione all’interno di un container lxd all’interno di un raspberry pi 4 + ssd.

AGGIORNAMENTO 2:

4 Mi Piace

Perché stavi usando un’istanza bare metal?

1 Mi Piace

@Falco in ritardo sulla festa, ma sto riscontrando lo stesso problema.

Ho seguito la guida all’installazione su un Pi 5, in esecuzione arm64. Qualche idea su come risolvere questo problema?

1 Mi Piace

Che sistema operativo stai eseguendo?