Я пытаюсь установить новый экземпляр Discourse на новый корневой сервер с Ubuntu 22.04.
Наш «старый» сервер сегодня вышел из строя из-за серьезной аппаратной неисправности, поэтому наш хостинг-провайдер был вынужден настроить новый сервер. (У меня есть файл резервной копии Discourse от прошлой ночи, который я планировал загрузить в только что настроенный экземпляр.)
Я следую этим инструкциям:
Но установка завершается ошибкой со следующим сообщением:
x86_64 arch detected.
Ensuring launcher is up to date
Fordere an von origin
Launcher is up-to-date
2.0.20220720-0049: Pulling from discourse/base
Digest: sha256:7ff397003c78b64c9131726756014710e2e67568fbc88daad846d2b368a02364
Status: Image is up to date for discourse/base:2.0.20220720-0049
docker.io/discourse/base:2.0.20220720-0049
exec /usr/local/bin/gem: exec format error
cd /pups && git pull && git checkout v1.0.3 && /pups/bin/pups --stdin
fatal: not a git repository (or any of the parent directories): .git
bootstrap failed with exit code 128
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
./discourse-doctor may help diagnose the problem.
Но уже на этапе запуска discourse-setup появляется несколько ошибок.
Кажется, что скрипт некорректно работает с немецкой версией операционной системы Ubuntu.
Ошибки возникают в строках с $avail_mem, потому что невозможно определить объем памяти.
Ваш скрипт ищет Mem:, но в немецкой версии Ubuntu при выполнении команды free -m --si используется Speicher:.
То же самое касается Swap:, который в немецкой версии называется Auslager:.
Я не видел никаких указаний на то, что ОС должна быть на английском языке для установки Discourse. ![]()
root@h2951329:/var/discourse# ./discourse-setup
./discourse-setup: Zeile 166: [: : Ganzzahliger Ausdruck erwartet.
./discourse-setup: Zeile 185: [: : Ganzzahliger Ausdruck erwartet.
./discourse-setup: Zeile 194: [: : Ganzzahliger Ausdruck erwartet.
The configuration file containers/app.yml already exists!
. . . reconfiguring . . .
Saving old file as app.yml.2022-08-18-011427.bak
Stopping existing container in 5 seconds or Control-C to cancel.
x86_64 arch detected.
app was not started !
./discourse-doctor may help diagnose the problem.
./discourse-setup: Zeile 166: [: : Ganzzahliger Ausdruck erwartet.
Found GB of memory and 4 physical CPU cores
./discourse-setup: Zeile 265: [: : Ganzzahliger Ausdruck erwartet.
./discourse-setup: Zeile 269: [: : Ganzzahliger Ausdruck erwartet.
./discourse-setup: Zeile 273: 256 * : Syntaxfehler: Operator erwartet (fehlerverursachendes Zeichen ist "* ")
Поэтому я отредактировал discourse-setup, заменив Mem: на Speicher: и Swap: на Auslager:, после чего discourse-setup выполнился без ошибок:
root@h2951329:/var/discourse# ./discourse-setup
The configuration file containers/app.yml already exists!
. . . reconfiguring . . .
Saving old file as app.yml.2022-08-18-013238.bak
Stopping existing container in 5 seconds or Control-C to cancel.
x86_64 arch detected.
app was not started !
./discourse-doctor may help diagnose the problem.
Found 33GB of memory and 4 physical CPU cores
setting db_shared_buffers = 4096MB
setting UNICORN_WORKERS = 8
containers/app.yml memory parameters updated.
Однако процесс пересборки всё ещё завершается неудачей:
Configuration file at containers/app.yml updated successfully!
Updates successful. Rebuilding in 5 seconds.
Building app
x86_64 arch detected.
Ensuring launcher is up to date
Fordere an von origin
Launcher is up-to-date
2.0.20220720-0049: Pulling from discourse/base
Digest: sha256:7ff397003c78b64c9131726756014710e2e67568fbc88daad846d2b368a02364
Status: Image is up to date for discourse/base:2.0.20220720-0049
docker.io/discourse/base:2.0.20220720-0049
exec /usr/local/bin/gem: exec format error
cd /pups && git pull && git checkout v1.0.3 && /pups/bin/pups --stdin
fatal: not a git repository (or any of the parent directories): .git
bootstrap failed with exit code 128
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
./discourse-doctor may help diagnose the problem.
Буду признателен за любую помощь в решении этой проблемы.