라즈베리파이에서 Discourse 설치 | 블로그

수개월 동안 라즈베리 파이 4에서 Discourse를 실행하려고 시도해 왔지만 성공하지 못했습니다.

Docker 이미지가 오래된 것 같아서 다른 두 개의 Docker 이미지를 제거하고 다시 설치해 보았지만 여전히 문제가 해결되지 않았습니다.

어떤 조언이 있을까요?

1개의 좋아요

네, Pi에 arm64 배포판을 설치하세요.

Raspberry Pi Foundation은 여전히 32비트 하드웨어를 대상으로 개발 중이었기 때문에, 올바른 소프트웨어 아키텍처를 출시하는 데 몇 년이 걸렸습니다. 현재 arm64 릴리스로 이미지를 변경해 주세요. 장점은 해당 기기에 8GB의 RAM이 있다면 이를 모두 사용할 수 있다는 점입니다.

1개의 좋아요

이미 arm64를 실행 중인 것 같은데, 작동하지 않습니다.

1개의 좋아요

실행 중인 것을 확인해야 합니다.

cat /proc/cpuinfo

1개의 좋아요

휴, 데이터가 정말 많았고, 솔직히 낯선 부분도 많아요. 제가 실행 중인 것을 지정하는 줄은 어느 줄인가요?

1개의 좋아요

uname -a
명령어가 여기서 도움이 될 것 같습니다.

2개의 좋아요

감사합니다!
결과:
Linux raspberrypi 6.1.21-v8+ #1642 SMP PREEMPT Mon Apr 3 17:24:16 BST 2023 aarch64 GNU/Linux

1개의 좋아요

음, 64비트(aarch64) 커널이긴 한데 armv8에 대한 docker 경고 메시지가 뜬다고 하네요. 이 분야에 대해 잘 모르기도 하고, 어떻게 이런 상황에 이르게 됐는지에 대한 전체적인 이야기도 알지 못하지만… 일반적인 조언은 안전한 백업을 받아서 새로운 OS와 새로운 discourse 설치 환경으로 복원하는 것입니다.

설치에는 성공했지만, 업그레이드 시점에 문제가 생기는 경우가 되지는 않았으면 좋겠습니다.

1개의 좋아요

귀하의 docker info 출력 결과는 무엇인가요?

특히 Architecture:라고 적힌 줄을 말씀드립니다.

1개의 좋아요

CPU 아키텍처: 8

1개의 좋아요

ㅋㅋ, 그걸 이미 여러 번 해봤고 다시 해도 준비되어 있어요.

현재 Raspberry Pi 400 Rev 1.0에서 Bullseye 64 lite를 실행 중입니다.
Bullseye 64, 64 lite, 32 lite와 Bookworm 64를 모두 시도해 봤습니다. 기억이 맞다면, 어떤 경우든 제가 게시한 것과 동일한 오류가 발생했습니다.

조금 더 알아본 후, 친구가 Bullseye 64 lite로 다시 플래시하면 문제가 해결될 것이라고 제안했지만, 실제로는 그렇지 않았습니다.

참고로, docker sudo docker run hello-world를 실행하면 예상대로 “Docker is working” 메시지가 표시됩니다.

1개의 좋아요

그거 말고 :stuck_out_tongue: . 전체 출력을 붙여넣어 주세요.

3개의 좋아요

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개의 좋아요

8GB RAM과 USB로 연결된 SSD를 단일 드라이브로 사용하는 Raspberry Pi 4에서 제대로 실행되지 않습니다. 다음 단계에서 계속 멈춰 있는 상태입니다(아니면, 1시간을 기다린 후 지쳐서 포기한 것일 수도 있고요…):

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

아직 작업 중인 것으로 보입니다:

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                  

컴파일 과정에 진행 상황 표시줄이 있으면 좋았을 텐데 아쉽습니다.

다음에 대한 최선의 방법은 무엇일까요?

  • 현재 어떤 작업을 수행하고 있는지 파악하는 방법?
  • 안전하게 종료하고 다시 시도하는 방법? 이전에 sudo shutdown --reboot 0을 시도해 보았지만, 이로 인해 postgres 데이터베이스가 손상되어 기기를 다시 초기화해야 했습니다.
1개의 좋아요

수신 중인 메시지를 포럼과 인터넷에서 검색해 보세요. 또한, 공지사항에 대한 답글로 작성하는 대신 새 게시글로 이동시키는 것도 좋습니다.

이를 검색창에 입력하면 결과를 확인할 수 있습니다. 포럼과 인터넷에서 게시한 내용으로 반복 검색하면 많은 정보를 얻을 수 있을 것입니다.
https://meta.discourse.org/search?q=has%20unmet%20peer%20dependency

1개의 좋아요

해당 단계는 컴파일 단계가 아니라 단순히 JS 파일을 다운로드하는 과정입니다. 파일 수가 매우 많고 크기가 작은 파일들이라, 사용하고 계신 특이한 저장 솔루션에 대해 병리적 수준의 최악의 경우일 것으로 추정됩니다.

7개의 좋아요

좋아요, 며칠 동안 실행을 계속해 보겠습니다. 그렇지 않으면 rpi4에 ssd를 사용하는 대신 rpi5에 ssd를 사용해야 할 것 같습니다.

업데이트:

몇 시간 후, 더 많은 자료를 읽은 끝에 lxd 컨테이너의 스토리지 풀을 btrfs에서 zfs로 변경해 보기로 했습니다. 변경을 완료한 후, 약 5분 만에 해당 지점을 넘어갈 수 있었습니다 (btrfs의 경우 워커가 실패하기 시작하기 전에 약 1시간 동안 멈춰 있었습니다).

아직 빌딩 중이지만, 완료된 후 백업 가져오기에 성공하고 cloudflare SSL을 설정하면, scaleway 내부에서 실행되는 discourse docker에서 raspberry pi 4 + ssd 내부의 lxd 컨테이너에서 실행되는 discourse docker로의 마이그레이션을 공개하겠습니다.

업데이트 2:

4개의 좋아요

왜 베어메탈 인스턴스를 사용하셨나요?

1개의 좋아요

@Falco 좀 늦게 참여했지만, 저도 같은 문제를 겪고 있습니다.

Pi 5에서 arm64를 실행하며 설치 가이드를 따랐습니다. 이 문제를 해결하는 방법에 대해 아이디어가 있으신가요?

1개의 좋아요

어떤 운영체제를 사용 중이신가요?