수개월 동안 라즈베리 파이 4에서 Discourse를 실행하려고 시도해 왔지만 성공하지 못했습니다.
Docker 이미지가 오래된 것 같아서 다른 두 개의 Docker 이미지를 제거하고 다시 설치해 보았지만 여전히 문제가 해결되지 않았습니다.
어떤 조언이 있을까요?
수개월 동안 라즈베리 파이 4에서 Discourse를 실행하려고 시도해 왔지만 성공하지 못했습니다.
Docker 이미지가 오래된 것 같아서 다른 두 개의 Docker 이미지를 제거하고 다시 설치해 보았지만 여전히 문제가 해결되지 않았습니다.
어떤 조언이 있을까요?
네, Pi에 arm64 배포판을 설치하세요.
Raspberry Pi Foundation은 여전히 32비트 하드웨어를 대상으로 개발 중이었기 때문에, 올바른 소프트웨어 아키텍처를 출시하는 데 몇 년이 걸렸습니다. 현재 arm64 릴리스로 이미지를 변경해 주세요. 장점은 해당 기기에 8GB의 RAM이 있다면 이를 모두 사용할 수 있다는 점입니다.
이미 arm64를 실행 중인 것 같은데, 작동하지 않습니다.
실행 중인 것을 확인해야 합니다.
cat /proc/cpuinfo
휴, 데이터가 정말 많았고, 솔직히 낯선 부분도 많아요. 제가 실행 중인 것을 지정하는 줄은 어느 줄인가요?
uname -a
명령어가 여기서 도움이 될 것 같습니다.
감사합니다!
결과:
Linux raspberrypi 6.1.21-v8+ #1642 SMP PREEMPT Mon Apr 3 17:24:16 BST 2023 aarch64 GNU/Linux
음, 64비트(aarch64) 커널이긴 한데 armv8에 대한 docker 경고 메시지가 뜬다고 하네요. 이 분야에 대해 잘 모르기도 하고, 어떻게 이런 상황에 이르게 됐는지에 대한 전체적인 이야기도 알지 못하지만… 일반적인 조언은 안전한 백업을 받아서 새로운 OS와 새로운 discourse 설치 환경으로 복원하는 것입니다.
설치에는 성공했지만, 업그레이드 시점에 문제가 생기는 경우가 되지는 않았으면 좋겠습니다.
귀하의 docker info 출력 결과는 무엇인가요?
특히 Architecture:라고 적힌 줄을 말씀드립니다.
CPU 아키텍처: 8
ㅋㅋ, 그걸 이미 여러 번 해봤고 다시 해도 준비되어 있어요.
현재 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” 메시지가 표시됩니다.
그거 말고
. 전체 출력을 붙여넣어 주세요.
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
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 데이터베이스가 손상되어 기기를 다시 초기화해야 했습니다.수신 중인 메시지를 포럼과 인터넷에서 검색해 보세요. 또한, 공지사항에 대한 답글로 작성하는 대신 새 게시글로 이동시키는 것도 좋습니다.
이를 검색창에 입력하면 결과를 확인할 수 있습니다. 포럼과 인터넷에서 게시한 내용으로 반복 검색하면 많은 정보를 얻을 수 있을 것입니다.
https://meta.discourse.org/search?q=has%20unmet%20peer%20dependency
해당 단계는 컴파일 단계가 아니라 단순히 JS 파일을 다운로드하는 과정입니다. 파일 수가 매우 많고 크기가 작은 파일들이라, 사용하고 계신 특이한 저장 솔루션에 대해 병리적 수준의 최악의 경우일 것으로 추정됩니다.
좋아요, 며칠 동안 실행을 계속해 보겠습니다. 그렇지 않으면 rpi4에 ssd를 사용하는 대신 rpi5에 ssd를 사용해야 할 것 같습니다.
업데이트:
몇 시간 후, 더 많은 자료를 읽은 끝에 lxd 컨테이너의 스토리지 풀을 btrfs에서 zfs로 변경해 보기로 했습니다. 변경을 완료한 후, 약 5분 만에 해당 지점을 넘어갈 수 있었습니다 (btrfs의 경우 워커가 실패하기 시작하기 전에 약 1시간 동안 멈춰 있었습니다).
아직 빌딩 중이지만, 완료된 후 백업 가져오기에 성공하고 cloudflare SSL을 설정하면, scaleway 내부에서 실행되는 discourse docker에서 raspberry pi 4 + ssd 내부의 lxd 컨테이너에서 실행되는 discourse docker로의 마이그레이션을 공개하겠습니다.
업데이트 2:
왜 베어메탈 인스턴스를 사용하셨나요?
@Falco 좀 늦게 참여했지만, 저도 같은 문제를 겪고 있습니다.
Pi 5에서 arm64를 실행하며 설치 가이드를 따랐습니다. 이 문제를 해결하는 방법에 대해 아이디어가 있으신가요?
어떤 운영체제를 사용 중이신가요?