\n2023-01-04 20:48:05.355 UTC [41] LOG: запуск PostgreSQL 13.9 (Debian 13.9-1.pgdg110+1) на архитектуре x86_64-pc-linux-gnu, скомпилирован с помощью gcc (Debian 10.2.1-6) 10.2.1 20210110, 64-бит\n2023-01-04 20:48:05.377 UTC [41] LOG: прослушивание IPv4-адреса "0.0.0.0", порт 5432\n2023-01-04 20:48:05.377 UTC [41] LOG: прослушивание IPv6-адреса "::", порт 5432\n2023-01-04 20:48:05.566 UTC [41] LOG: прослушивание Unix-сокета "/var/run/postgresql/.s.PGSQL.5432"\n2023-01-04 20:48:05.734 UTC [44] LOG: база данных была остановлена в 2023-01-04 20:46:17 UTC\n2023-01-04 20:48:05.878 UTC [41] LOG: система баз данных готова принимать подключения\nI, [2023-01-04T20:48:09.779985 #1] INFO -- :\nI, [2023-01-04T20:48:09.780390 #1] INFO -- : > su postgres -c 'createdb discourse' || true\n2023-01-04 20:48:10.014 UTC [54] postgres@postgres ERROR: база данных "discourse" уже существует\n2023-01-04 20:48:10.014 UTC [54] postgres@postgres STATEMENT: CREATE DATABASE discourse;\ncreatedb: ошибка: создание базы данных не удалось: ERROR: база данных "discourse" уже существует\nI, [2023-01-04T20:48:10.017003 #1] INFO -- :\nI, [2023-01-04T20:48:10.017425 #1] INFO -- : > su postgres -c 'psql discourse -c "create user discourse;"' || true\n2023-01-04 20:48:10.188 UTC [58] postgres@discourse ERROR: роль "discourse" уже существует\n2023-01-04 20:48:10.188 UTC [58] postgres@discourse STATEMENT: create user discourse;\nERROR: роль "discourse" уже существует\n\n\n\n129:M 04 Jan 2023 20:48:21.224 # Не удалось прослушивать порт 6379 (TCP), прерывание.\n\n\nДругих ошибок я не вижу.\n\n:man_shrugging:
Внутри контейнера я пытаюсь запустить службу postgresql, но получаю ошибку.
root@server /var/discourse # ./launcher enter app
Архитектура x86_64 обнаружена.
root@discourse:/var/www/discourse# service postgresql start
[FAIL] Запуск сервера базы данных PostgreSQL 13: main[....] Ошибка: владелец конфигурации (postgres:105) и владелец данных (systemd-timesync:101) не совпадают, а владелец конфигурации не root ... не удалось!
не удалось!
root@discourse:/var/www/discourse#
Если вы изменили владельцев файлов внутри общей папки, установка будет нарушена. Один из вариантов — переустановка и восстановление из резервной копии, другой — ручное исправление владельцев этих файлов.
Внутри контейнера я попытался выполнить discourse backup. Система сообщила, что Redis не запущен. В логе Redis за «текущий» период в конце я обнаружил следующие строки…
10316:M 05 Jan 2023 08:05:27.314 # Сервер инициализирован
10316:M 05 Jan 2023 08:05:27.314 # ПРЕДУПРЕЖДЕНИЕ: overcommit_memory установлен в 0! Фоновое сохранение может завершиться неудачей при нехватке памяти. Чтобы исправить эту проблему, добавьте 'vm.overcommit_memory = 1' в файл /etc/sysctl.conf, затем перезагрузите систему или выполните команду 'sysctl vm.overcommit_memory=1', чтобы изменения вступили в силу.
10316:M 05 Jan 2023 08:05:27.314 # Не удалось обработать формат RDB версии 10
10316:M 05 Jan 2023 08:05:27.314 # Критическая ошибка при загрузке базы данных: недопустимый аргумент. Выход.
10321:C 05 Jan 2023 08:05:28.345 # oO0OoO0OoO0Oo Redis запускается oO0OoO0OoO0Oo
10321:C 05 Jan 2023 08:05:28.345 # Версия Redis=6.2.3, биты=64, коммит=00000000, модифицирован=0, pid=10321, только что запущен
10321:C 05 Jan 2023 08:05:28.345 # Конфигурация загружена
10321:M 05 Jan 2023 08:05:28.346 * Монохронные часы: POSIX clock_gettime
10321:M 05 Jan 2023 08:05:28.347 * Режим работы=standalone, порт=6379.
10321:M 05 Jan 2023 08:05:28.347 # ПРЕДУПРЕЖДЕНИЕ: Настройка TCP backlog, равная 511, не может быть применена, так как /proc/sys/net/core/somaxconn установлен в меньшее значение 128.
10321:M 05 Jan 2023 08:05:28.347 # Сервер инициализирован
10321:M 05 Jan 2023 08:05:28.347 # ПРЕДУПРЕЖДЕНИЕ: overcommit_memory установлен в 0! Фоновое сохранение может завершиться неудачей при нехватке памяти. Чтобы исправить эту проблему, добавьте 'vm.overcommit_memory = 1' в файл /etc/sysctl.conf, затем перезагрузите систему или выполните команду 'sysctl vm.overcommit_memory=1', чтобы изменения вступили в силу.
10321:M 05 Jan 2023 08:05:28.348 # Не удалось обработать формат RDB версии 10
10321:M 05 Jan 2023 08:05:28.348 # Критическая ошибка при загрузке базы данных: недопустимый аргумент. Выход.
После этого я перезапустил контейнер командой ./launcher restart app. Теперь я могу получить доступ к Discourse. Но это старая версия 2.8.3, которую я вчера пытался обновить до 3.0.0.beta16.
Мне удалось установить версию 2.9.0.beta2 (идентификатор коммита: 88a8584348ed93a28286839bfc1c32b06bd50b3f), указав идентификатор коммита в качестве значения параметра “version” в файле app.yml. На этот раз обновление прошло успешно. После этого я смог обновиться до версии 3.0.0.beta16.