Перестройка Discourse

Всем привет,

Я совсем новичок в Discourse, но уже изучаю один из наших корпоративных инстансов, который был настроен кем-то другим. Один из членов нашей команды обновил SSL-сертификат, и с тех пор он не работает уже несколько недель. Попытка пересборки также приводит к ошибкам. Не мог бы кто-нибудь помочь?

Вот результат пересборки.

sudo ./launcher rebuild app
Проверка актуальности лаунчера
Получение изменений из origin
Лаунчер актуален
Остановка старого контейнера
+ /usr/bin/docker stop -t 60 app
app
cd /pups && git pull && /pups/bin/pups --stdin
Уже актуально.
I, [2021-01-27T00:56:18.217397 #1]  INFO -- : Загрузка --stdin
I, [2021-01-27T00:56:18.221386 #1]  INFO -- : > apt-get remove -y postgresql-10 postgresql-client-10 postgresql-contrib-10
I, [2021-01-27T00:56:19.014337 #1]  INFO -- : Чтение списков пакетов...
Построение дерева зависимостей...
Чтение информации о состоянии...
Пакет 'postgresql-10' не установлен, поэтому не удаляется
Пакет 'postgresql-client-10' не установлен, поэтому не удаляется
0 обновлено, 0 новых установлено, 0 для удаления и 0 не обновлено.

I, [2021-01-27T00:56:19.014524 #1]  INFO -- : > apt-get update && apt-get install -y postgresql-9.5 postgresql-client-9.5 postgresql-contrib-9.5
debconf: откладывание конфигурации пакетов, так как apt-utils не установлен
I, [2021-01-27T00:56:27.744372 #1]  INFO -- : Hit:1 http://deb.debian.org/debian buster InRelease
Get:2 http://security.debian.org/debian-security buster/updates InRelease [65,4 КБ]
Get:3 https://deb.nodesource.com/node_10.x buster InRelease [4 584 Б]
Get:4 http://security.debian.org/debian-security buster/updates/main amd64 Packages [270 КБ]
Get:5 http://apt.postgresql.org/pub/repos/apt buster-pgdg InRelease [104 КБ]
Get:6 http://deb.debian.org/debian buster-updates InRelease [51,9 КБ]
Get:7 https://deb.nodesource.com/node_10.x buster/main amd64 Packages [766 Б]
Get:8 http://deb.debian.org/debian buster-updates/main amd64 Packages.diff/Index [4 672 Б]
Get:9 http://deb.debian.org/debian buster-updates/main amd64 Packages 2020-12-24-1401.30.pdiff [286 Б]
Get:9 http://deb.debian.org/debian buster-updates/main amd64 Packages 2020-12-24-1401.30.pdiff [286 Б]
Get:10 http://apt.postgresql.org/pub/repos/apt buster-pgdg/main amd64 Packages [217 КБ]
Получено 718 КБ за 1 с (566 КБ/с)
Чтение списков пакетов...
Чтение списков пакетов...
Построение дерева зависимостей...
Чтение информации о состоянии...
Предлагаемые пакеты:
  postgresql-doc-9.5 libdbd-pg-perl
Будут установлены следующие НОВЫЕ пакеты:
  postgresql-9.5 postgresql-client-9.5 postgresql-contrib-9.5
0 обновлено, 3 новых установлено, 0 для удаления и 6 не обновлено.
Необходимо получить 5 822 КБ архивов.
После этой операции будет использовано дополнительно 28,0 МБ дискового пространства.
Get:1 http://apt.postgresql.org/pub/repos/apt buster-pgdg/main amd64 postgresql-client-9.5 amd64 9.5.24-1.pgdg100+1 [1 290 КБ]
Get:2 http://apt.postgresql.org/pub/repos/apt buster-pgdg/main amd64 postgresql-9.5 amd64 9.5.24-1.pgdg100+1 [4 066 КБ]
Get:3 http://apt.postgresql.org/pub/repos/apt buster-pgdg/main amd64 postgresql-contrib-9.5 amd64 9.5.24-1.pgdg100+1 [465 КБ]
Получено 5 822 КБ за 2 с (3 628 КБ/с)
Выбор ранее не выбранного пакета postgresql-client-9.5.
(Чтение базы данных ... на данный момент установлено 43899 файлов и каталогов.)
Подготовка к распаковке .../postgresql-client-9.5_9.5.24-1.pgdg100+1_amd64.deb ...
Распаковка postgresql-client-9.5 (9.5.24-1.pgdg100+1) ...
Выбор ранее не выбранного пакета postgresql-9.5.
Подготовка к распаковке .../postgresql-9.5_9.5.24-1.pgdg100+1_amd64.deb ...
Распаковка postgresql-9.5 (9.5.24-1.pgdg100+1) ...
Выбор ранее не выбранного пакета postgresql-contrib-9.5.
Подготовка к распаковке .../postgresql-contrib-9.5_9.5.24-1.pgdg100+1_amd64.deb ...
Распаковка postgresql-contrib-9.5 (9.5.24-1.pgdg100+1) ...
Настройка postgresql-client-9.5 (9.5.24-1.pgdg100+1) ...
update-alternatives: предупреждение: принудительная переустановка альтернативы /usr/share/postgresql/13/man/man1/psql.1.gz, так как группа ссылок psql.1.gz повреждена
Настройка postgresql-9.5 (9.5.24-1.pgdg100+1) ...
Создание нового кластера PostgreSQL 9.5/main ...
/usr/lib/postgresql/9.5/bin/initdb -D /var/lib/postgresql/9.5/main --auth-local peer --auth-host md5
Файлы, принадлежащие этой системе баз данных, будут принадлежать пользователю «postgres».
Этот пользователь также должен владеть процессом сервера.

Кластер баз данных будет инициализирован с локалью «C.UTF-8».
Кодировка базовой базы данных соответственно установлена в «UTF8».
Конфигурация поиска по умолчанию будет установлена в «english».

Контрольные суммы страниц данных отключены.

Исправление прав доступа к существующему каталогу /var/lib/postgresql/9.5/main ... ok
Создание подкаталогов ... ok
Выбор max_connections по умолчанию ... 100
Выбор shared_buffers по умолчанию ... 128 МБ
Выбор часового пояса по умолчанию ... Etc/UTC
Выбор реализации динамической разделяемой памяти ... posix
Создание файлов конфигурации ... ok
Создание базы данных template1 в /var/lib/postgresql/9.5/main/base/1 ... ok
Инициализация pg_authid ... ok
Инициализация зависимостей ... ok
Создание системных представлений ... ok
Загрузка описаний системных объектов ... ok
Создание коллаций ... ok
Создание конвертаций ... ok
Создание словарей ... ok
Установка привилегий для встроенных объектов ... ok
Создание информационной схемы ... ok
Загрузка серверного языка PL/pgSQL ... ok
Вакуумирование базы данных template1 ... ok
Копирование template1 в template0 ... ok
Копирование template1 в postgres ... ok
Синхронизация данных с диском ... ok

Успешно. Теперь вы можете запустить сервер баз данных, используя:

    /usr/lib/postgresql/9.5/bin/pg_ctl -D /var/lib/postgresql/9.5/main -l logfile start

Ver Cluster Port Status Owner    Data directory               Log file
9.5 main    5433 down   postgres /var/lib/postgresql/9.5/main /var/log/postgresql/postgresql-9.5-main.log
update-alternatives: предупреждение: принудительная переустановка альтернативы /usr/share/postgresql/13/man/man1/postmaster.1.gz, так как группа ссылок postmaster.1.gz повреждена
invoke-rc.d: не удалось определить текущий уровень выполнения
invoke-rc.d: policy-rc.d запретил выполнение запуска.
Настройка postgresql-contrib-9.5 (9.5.24-1.pgdg100+1) ...
Обработка триггеров для postgresql-common (223.pgdg100+1) ...
Построение словарей PostgreSQL из установленных пакетов myspell/hunspell...
Удаление устаревших файлов словарей:

I, [2021-01-27T00:56:27.744534 #1]  INFO -- : > mkdir -p /shared/postgres_run
I, [2021-01-27T00:56:27.746759 #1]  INFO -- :
I, [2021-01-27T00:56:27.746920 #1]  INFO -- : > chown postgres:postgres /shared/postgres_run
I, [2021-01-27T00:56:27.748670 #1]  INFO -- :
I, [2021-01-27T00:56:27.748817 #1]  INFO -- : > chmod 775 /shared/postgres_run
I, [2021-01-27T00:56:27.750312 #1]  INFO -- :
I, [2021-01-27T00:56:27.750445 #1]  INFO -- : > rm -fr /var/run/postgresql
I, [2021-01-27T00:56:27.752163 #1]  INFO -- :
I, [2021-01-27T00:56:27.752286 #1]  INFO -- : > ln -s /shared/postgres_run /var/run/postgresql
I, [2021-01-27T00:56:27.753733 #1]  INFO -- :
I, [2021-01-27T00:56:27.753861 #1]  INFO -- : > socat /dev/null UNIX-CONNECT:/shared/postgres_run/.s.PGSQL.5432 || exit 0 && echo postgres уже запущен, остановите контейнер ; exit 1
2021/01/27 00:56:27 socat[1563] E connect(6, AF=1 "/shared/postgres_run/.s.PGSQL.5432", 36): Нет такого файла или каталога
I, [2021-01-27T00:56:27.757032 #1]  INFO -- :
I, [2021-01-27T00:56:27.757131 #1]  INFO -- : > rm -fr /shared/postgres_run/.s*
I, [2021-01-27T00:56:27.759113 #1]  INFO -- :
I, [2021-01-27T00:56:27.759211 #1]  INFO -- : > rm -fr /shared/postgres_run/*.pid
I, [2021-01-27T00:56:27.761112 #1]  INFO -- :
I, [2021-01-27T00:56:27.761207 #1]  INFO -- : > mkdir -p /shared/postgres_run/9.5-main.pg_stat_tmp
I, [2021-01-27T00:56:27.762768 #1]  INFO -- :
I, [2021-01-27T00:56:27.762914 #1]  INFO -- : > chown postgres:postgres /shared/postgres_run/9.5-main.pg_stat_tmp
I, [2021-01-27T00:56:27.764392 #1]  INFO -- :
I, [2021-01-27T00:56:27.767696 #1]  INFO -- : Файл > /etc/service/postgres/run  chmod: +x  chown:
I, [2021-01-27T00:56:27.770758 #1]  INFO -- : Файл > /etc/runit/3.d/99-postgres  chmod: +x  chown:
I, [2021-01-27T00:56:27.770945 #1]  INFO -- : > chown -R root /var/lib/postgresql/9.5/main
I, [2021-01-27T00:56:27.776379 #1]  INFO -- :
I, [2021-01-27T00:56:27.776453 #1]  INFO -- : > [ ! -e /shared/postgres_data ] && install -d -m 0755 -o postgres -g postgres /shared/postgres_data && sudo -E -u postgres /usr/lib/postgresql/9.5/bin/initdb -D /shared/postgres_data || exit 0
I, [2021-01-27T00:56:27.777801 #1]  INFO -- :
I, [2021-01-27T00:56:27.777850 #1]  INFO -- : > chown -R postgres:postgres /shared/postgres_data
I, [2021-01-27T00:56:27.783111 #1]  INFO -- :
I, [2021-01-27T00:56:27.783215 #1]  INFO -- : > chown -R postgres:postgres /var/run/postgresql
I, [2021-01-27T00:56:27.784767 #1]  INFO -- :
I, [2021-01-27T00:56:27.784941 #1]  INFO -- : Замена data_directory = '/var/lib/postgresql/9.5/main' на data_directory = '/shared/postgres_data' в /etc/postgresql/9.5/main/postgresql.conf
I, [2021-01-27T00:56:27.785211 #1]  INFO -- : Замена (?-mix:#?listen_addresses *=.*) на listen_addresses = '*' в /etc/postgresql/9.5/main/postgresql.conf
I, [2021-01-27T00:56:27.785927 #1]  INFO -- : Замена (?-mix:#?synchronous_commit *=.*) на synchronous_commit = $db_synchronous_commit в /etc/postgresql/9.5/main/postgresql.conf
I, [2021-01-27T00:56:27.786670 #1]  INFO -- : Замена (?-mix:#?shared_buffers *=.*) на shared_buffers = $db_shared_buffers в /etc/postgresql/9.5/main/postgresql.conf
I, [2021-01-27T00:56:27.787426 #1]  INFO -- : Замена (?-mix:#?work_mem *=.*) на work_mem = $db_work_mem в /etc/postgresql/9.5/main/postgresql.conf
I, [2021-01-27T00:56:27.788428 #1]  INFO -- : Замена (?-mix:#?default_text_search_config *=.*) на default_text_search_config = '$db_default_text_search_config' в /etc/postgresql/9.5/main/postgresql.conf
I, [2021-01-27T00:56:27.789053 #1]  INFO -- : > install -d -m 0755 -o postgres -g postgres /shared/postgres_backup
I, [2021-01-27T00:56:27.790832 #1]  INFO -- :
I, [2021-01-27T00:56:27.791033 #1]  INFO -- : Замена (?-mix:#?checkpoint_segments *=.*) на checkpoint_segments = $db_checkpoint_segments в /etc/postgresql/9.5/main/postgresql.conf
I, [2021-01-27T00:56:27.791241 #1]  INFO -- : Замена (?-mix:#?logging_collector *=.*) на logging_collector = $db_logging_collector в /etc/postgresql/9.5/main/postgresql.conf
I, [2021-01-27T00:56:27.791909 #1]  INFO -- : Замена (?-mix:#?log_min_duration_statement *=.*) на log_min_duration_statement = $db_log_min_duration_statement в /etc/postgresql/9.5/main/postgresql.conf
I, [2021-01-27T00:56:27.792577 #1]  INFO -- : Замена (?-mix:^#local +replication +postgres +peer$) на local replication postgres  peer в /etc/postgresql/9.5/main/pg_hba.conf
I, [2021-01-27T00:56:27.792744 #1]  INFO -- : Замена (?-mix:^host.*all.*all.*127.*$) на host all all 0.0.0.0/0 md5 в /etc/postgresql/9.5/main/pg_hba.conf
I, [2021-01-27T00:56:27.793816 #1]  INFO -- : > HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/9.5/bin/postmaster -D /etc/postgresql/9.5/main
I, [2021-01-27T00:56:27.794896 #1]  INFO -- : > sleep 5
2021-01-27 00:56:27.803 UTC [1579] FATAL: «/shared/postgres_data» не является допустимым каталогом данных
2021-01-27 00:56:27.803 UTC [1579] DETAIL: Файл «/shared/postgres_data/PG_VERSION» не содержит допустимых данных.
2021-01-27 00:56:27.803 UTC [1579] HINT: Возможно, вам потребуется выполнить initdb.
I, [2021-01-27T00:56:32.796560 #1]  INFO -- :
I, [2021-01-27T00:56:32.796794 #1]  INFO -- : > su postgres -c 'createdb discourse' || true
createdb: ошибка: не удалось подключиться к базе данных template1: не удалось подключиться к серверу: Нет такого файла или каталога
        Запущен ли сервер локально и принимает ли он
        подключения через сокет Unix «/var/run/postgresql/.s.PGSQL.5432»?
I, [2021-01-27T00:56:32.831116 #1]  INFO -- :
I, [2021-01-27T00:56:32.831264 #1]  INFO -- : > su postgres -c 'psql discourse -c "create user discourse;"' || true
psql: ошибка: не удалось подключиться к серверу: Нет такого файла или каталога
        Запущен ли сервер локально и принимает ли он
        подключения через сокет Unix «/var/run/postgresql/.s.PGSQL.5432»?
I, [2021-01-27T00:56:32.870370 #1]  INFO -- :
I, [2021-01-27T00:56:32.870513 #1]  INFO -- : > su postgres -c 'psql discourse -c "grant all privileges on database discourse to discourse;"' || true
psql: ошибка: не удалось подключиться к серверу: Нет такого файла или каталога
        Запущен ли сервер локально и принимает ли он
        подключения через сокет Unix «/var/run/postgresql/.s.PGSQL.5432»?
I, [2021-01-27T00:56:32.908898 #1]  INFO -- :
I, [2021-01-27T00:56:32.909038 #1]  INFO -- : > su postgres -c 'psql discourse -c "alter schema public owner to discourse;"'
psql: ошибка: не удалось подключиться к серверу: Нет такого файла или каталога
        Запущен ли сервер локально и принимает ли он
        подключения через сокет Unix «/var/run/postgresql/.s.PGSQL.5432»?
I, [2021-01-27T00:56:32.947732 #1]  INFO -- :
I, [2021-01-27T00:56:32.947960 #1]  INFO -- : Завершение асинхронных процессов


ОШИБКА
--------------------
Pups::ExecError: su postgres -c 'psql discourse -c "alter schema public owner to discourse;"' завершился с ошибкой #<Process::Status: pid 1605 exit 2>
Место возникновения ошибки: /pups/lib/pups/exec_command.rb:112:in `spawn'
exec завершился с ошибкой с параметрами "su postgres -c 'psql $db_name -c \"alter schema public owner to $db_user;\"'"
939070e4fa69fee27e24019c29559257d18d45800db622ff039dbf4eba4372f1
** НЕ УДАЛОСЬ ЗАПУСТИТЬ ** пожалуйста, прокрутите вверх и поищите более ранние сообщения об ошибках, их может быть несколько.
./discourse-doctor может помочь в диагностике проблемы.

Можете поделиться вашим app.yml (/var/discourse/containers/app.yml) после удаления конфиденциальных данных?

ubuntu@ip-10-0-5-81:/var/discourse_docker$ cat /var/discourse_docker/containers/app.yml
## Это шаблон контейнера Docker Discourse «всё в одном», автономный
##
## После внесения изменений в этот файл вы ОБЯЗАНЫ выполнить пересборку
## /var/discourse/launcher rebuild app
##
## БУДЬТЕ *ОЧЕНЬ* ОСТОРОЖНЫ ПРИ РЕДАКТИРОВАНИИ!
## YAML-ФАЙЛЫ ЧРЕЗВЫЧАЙНО ЧУВСТВИТЕЛЬНЫ К ОШИБКАМ В ПРОБЕЛАХ И ВЫРАВНИВАНИИ!
## При необходимости проверьте этот файл на сайте http://www.yamllint.com/

templates:
  - "templates/postgres.9.5.template.yml"
  - "templates/redis.template.yml"
  - "templates/web.template.yml"
  - "templates/web.ratelimited.template.yml"
## Раскомментируйте эти две строки, если хотите добавить Lets Encrypt (https)
  #- "templates/web.ssl.template.yml"
  #- "templates/web.letsencrypt.ssl.template.yml"

## Какие TCP/IP-порты должен открывать этот контейнер?
## Если вы хотите, чтобы Discourse использовал тот же порт, что и другой веб-сервер, например Apache или nginx,
## см. https://meta.discourse.org/t/17247 для деталей
expose:
  - "80:80"   # http
  - "443:443" # https
  - "2222:22" # ssh

params:
  db_default_text_search_config: "pg_catalog.english"

  ## Установите db_shared_buffers максимум на 25% от общего объёма памяти.
  ## Будет установлено автоматически при загрузке на основе обнаруженной оперативной памяти, либо вы можете переопределить
  db_shared_buffers: "1792MB"

  ## Может улучшить производительность сортировки, но увеличивает использование памяти на каждое соединение
  #db_work_mem: "40MB"

  ## Какую ревизию Git должен использовать этот контейнер? (по умолчанию: tests-passed)
  #version: tests-passed

env:
  LANG: en_US.UTF-8
  # DISCOURSE_DEFAULT_LOCALE: en

  ## Сколько одновременных веб-запросов поддерживается? Зависит от памяти и ядер процессора.
  ## Будет установлено автоматически при загрузке на основе обнаруженных процессоров, либо вы можете переопределить
  UNICORN_WORKERS: 4

  ## TODO: Доменное имя, на которое будет отвечать этот экземпляр Discourse
  ## Обязательно. Discourse не будет работать с чистым IP-адресом.
  DISCOURSE_HOSTNAME: 'discourse.frostbite.com'

  ## Раскомментируйте, если хотите, чтобы контейнер запускался с тем же
  ## именем хоста (опция -h), что указано выше (по умолчанию "$hostname-$config")
  #DOCKER_USE_HOSTNAME: true

  ## TODO: Список email-адресов через запятую, которые станут администраторами и разработчиками
  ## при первоначальной регистрации, например 'user1@example.com,user2@example.com'
  DISCOURSE_DEVELOPER_EMAILS: 'ipersson@frostbite.com'

  ## TODO: SMTP-сервер для проверки новых учётных записей и отправки уведомлений
  ## SMTP-адрес, имя пользователя и пароль обязательны
  ## ВНИМАНИЕ: символ '#' в пароле SMTP может вызвать проблемы!
  DISCOURSE_SMTP_ADDRESS: 'email-smtp.us-west-2.amazonaws.com'
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: ''
  DISCOURSE_SMTP_PASSWORD: ''
  DISCOURSE_SMTP_ENABLE_START_TLS: true           # (необязательно, по умолчанию true)
  DISCOURSE_SMTP_AUTHENTICATION: 'login'

  DISCOURSE_DB_SOCKET: ''
  DISCOURSE_DB_NAME: 'discourse'
  DISCOURSE_DB_POOL: 15
  DISCOURSE_DB_USERNAME: 'discourse'
  DISCOURSE_DB_PASSWORD: ''
  DISCOURSE_DB_HOST: ''
  DISCOURSE_DB_PORT: '5432'
  DISCOURSE_REDIS_HOST: ''
  DISCOURSE_REDIS_PORT: '6379'

  ## Если вы добавили шаблон Lets Encrypt, раскомментируйте ниже, чтобы получить бесплатный SSL-сертификат
  #LETSENCRYPT_ACCOUNT_EMAIL: me@example.com

  ## Адрес CDN http или https для этого экземпляра Discourse (настроен на получение)
  ## см. https://meta.discourse.org/t/14857 для деталей
  #DISCOURSE_CDN_URL: https://discourse-cdn.example.com

  ## Ключ IP-адреса геолокации MaxMind для поиска по IP-адресу
  ## см. https://meta.discourse.org/t/-/137387/23 для деталей
  #DISCOURSE_MAXMIND_LICENSE_KEY: 1234567890123456

## Контейнер Docker не имеет состояния; все данные хранятся в /shared
volumes:
  - volume:
      host: /var/discourse/shared/standalone
      guest: /shared
  - volume:
      host: /var/discourse/shared/standalone/log/var-log
      guest: /var/log

## Плагины размещаются здесь
## см. https://meta.discourse.org/t/19157 для деталей
hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - mkdir -p plugins
          - git clone https://github.com/discourse/docker_manager.git
          - git clone https://github.com/discourse/discourse-solved.git
          - git clone https://github.com/discourse/discourse-feature-voting.git

## Любые пользовательские команды для выполнения после сборки
run:
  - exec: echo "Начало пользовательских команд"
  ## Если вы хотите установить адрес электронной почты 'From' для вашей первой регистрации, раскомментируйте и измените:
  ## После получения первого письма о регистрации закомментируйте строку обратно. Выполнять нужно только один раз.
  #- exec: rails r "SiteSetting.notification_email='info@unconfigured.discourse.org'"
  - exec: echo "Конец пользовательских команд"
  - exec: awk -F\# '{print $1;}' ~/.ssh/authorized_keys | awk 'BEGIN { print "Разрешённые SSH-ключи для этого контейнера:"; } NF\u003e=2 {print $NF;}'

Спасибо за помощь. Как я вижу в файле app.yml, база данных размещена на другом сервере. Этот экземпляр работал стабильно в течение нескольких месяцев, и никаких изменений не вносилось, за исключением обновления SSL.

Итак, это довольно старая установка, и последний ответственный за неё не хотел заниматься обновлением до PostgreSQL 10 и оставил её на версии PostgreSQL 9.5.

В настоящее время Discourse использует PostgreSQL 13, поэтому вам нужно выполнить следующие шаги:

  1. Сделайте резервную копию.
  2. Измените строку в файле app.yml:
    с: - "templates/postgres.9.5.template.yml"
    на: - "templates/postgres.template.yml"
  3. Пересоберите и следуйте инструкциям.

Поскольку вы пропустили два крупных обновления PostgreSQL с 2018 года, этот процесс может оказаться более сложным, чем обычно.

Спасибо, это немного продвинуло процесс, но, к сожалению, всё ещё возникает ошибка, связанная с psql.

Часть 1

ubuntu@ip-10-0-5-81:/var/discourse_docker$ sudo git pull
Уже обновлено.
ubuntu@ip-10-0-5-81:/var/discourse_docker$ sudo ./launcher rebuild app
Проверка актуальности запускающей программы
Получение изменений из origin
Запускающая программа актуальна
Остановка старого контейнера
+ /usr/bin/docker stop -t 60 app
app
cd /pups && git pull && /pups/bin/pups --stdin
Уже обновлено.
I, [2021-01-27T02:23:32.961245 #1]  INFO -- : Загрузка --stdin
I, [2021-01-27T02:23:32.965383 #1]  INFO -- : > locale-gen $LANG && update-locale
I, [2021-01-27T02:23:32.987516 #1]  INFO -- : Генерация локалей (это может занять некоторое время)...
Генерация завершена.

I, [2021-01-27T02:23:32.987669 #1]  INFO -- : > mkdir -p /shared/postgres_run
I, [2021-01-27T02:23:32.989911 #1]  INFO -- :
I, [2021-01-27T02:23:32.990064 #1]  INFO -- : > chown postgres:postgres /shared/postgres_run
I, [2021-01-27T02:23:32.992027 #1]  INFO -- :
I, [2021-01-27T02:23:32.992154 #1]  INFO -- : > chmod 775 /shared/postgres_run
I, [2021-01-27T02:23:32.993583 #1]  INFO -- :
I, [2021-01-27T02:23:32.993702 #1]  INFO -- : > rm -fr /var/run/postgresql
I, [2021-01-27T02:23:32.995266 #1]  INFO -- :
I, [2021-01-27T02:23:32.995389 #1]  INFO -- : > ln -s /shared/postgres_run /var/run/postgresql
I, [2021-01-27T02:23:32.996948 #1]  INFO -- :
I, [2021-01-27T02:23:32.997071 #1]  INFO -- : > socat /dev/null UNIX-CONNECT:/shared/postgres_run/.s.PGSQL.5432 || exit 0 && echo postgres уже запущен, остановите контейнер ; exit 1
2021/01/27 02:23:33 socat[28] E connect(6, AF=1 "/shared/postgres_run/.s.PGSQL.5432", 36): Файл или каталог не найден
I, [2021-01-27T02:23:33.000489 #1]  INFO -- :
I, [2021-01-27T02:23:33.000604 #1]  INFO -- : > rm -fr /shared/postgres_run/.s*
I, [2021-01-27T02:23:33.002633 #1]  INFO -- :
I, [2021-01-27T02:23:33.002731 #1]  INFO -- : > rm -fr /shared/postgres_run/*.pid
I, [2021-01-27T02:23:33.004812 #1]  INFO -- :
I, [2021-01-27T02:23:33.004925 #1]  INFO -- : > mkdir -p /shared/postgres_run/13-main.pg_stat_tmp
I, [2021-01-27T02:23:33.006528 #1]  INFO -- :
I, [2021-01-27T02:23:33.006672 #1]  INFO -- : > chown postgres:postgres /shared/postgres_run/13-main.pg_stat_tmp
I, [2021-01-27T02:23:33.008413 #1]  INFO -- :
I, [2021-01-27T02:23:33.011835 #1]  INFO -- : Файл > /etc/service/postgres/run  chmod: +x  chown:
I, [2021-01-27T02:23:33.014961 #1]  INFO -- : Файл > /etc/service/postgres/log/run  chmod: +x  chown:
I, [2021-01-27T02:23:33.018297 #1]  INFO -- : Файл > /etc/runit/3.d/99-postgres  chmod: +x  chown:
I, [2021-01-27T02:23:33.021412 #1]  INFO -- : Файл > /root/upgrade_postgres  chmod: +x  chown:
I, [2021-01-27T02:23:33.021632 #1]  INFO -- : > chown -R root /var/lib/postgresql/13/main
I, [2021-01-27T02:23:35.186494 #1]  INFO -- :
I, [2021-01-27T02:23:35.186619 #1]  INFO -- : > [ ! -e /shared/postgres_data ] && install -d -m 0755 -o postgres -g postgres /shared/postgres_data && sudo -E -u postgres /usr/lib/postgresql/13/bin/initdb -D /shared/postgres_data || exit 0
I, [2021-01-27T02:23:35.188812 #1]  INFO -- :
I, [2021-01-27T02:23:35.188877 #1]  INFO -- : > chown -R postgres:postgres /shared/postgres_data
I, [2021-01-27T02:23:35.194463 #1]  INFO -- :
I, [2021-01-27T02:23:35.194567 #1]  INFO -- : > chown -R postgres:postgres /var/run/postgresql
I, [2021-01-27T02:23:35.196238 #1]  INFO -- :
I, [2021-01-27T02:23:35.196378 #1]  INFO -- : > /root/upgrade_postgres
I, [2021-01-27T02:23:35.199668 #1]  INFO -- :
I, [2021-01-27T02:23:35.199784 #1]  INFO -- : > rm /root/upgrade_postgres
I, [2021-01-27T02:23:35.201235 #1]  INFO -- :
I, [2021-01-27T02:23:35.201464 #1]  INFO -- : Замена data_directory = '/var/lib/postgresql/13/main' на data_directory = '/shared/postgres_data' в /etc/postgresql/13/main/postgresql.conf
I, [2021-01-27T02:23:35.201885 #1]  INFO -- : Замена (?-mix:#?listen_addresses *=.*) на listen_addresses = '*' в /etc/postgresql/13/main/postgresql.conf
I, [2021-01-27T02:23:35.202816 #1]  INFO -- : Замена (?-mix:#?synchronous_commit *=.*) на synchronous_commit = $db_synchronous_commit в /etc/postgresql/13/main/postgresql.conf
I, [2021-01-27T02:23:35.204224 #1]  INFO -- : Замена (?-mix:#?shared_buffers *=.*) на shared_buffers = $db_shared_buffers в /etc/postgresql/13/main/postgresql.conf
I, [2021-01-27T02:23:35.205139 #1]  INFO -- : Замена (?-mix:#?work_mem *=.*) на work_mem = $db_work_mem в /etc/postgresql/13/main/postgresql.conf
I, [2021-01-27T02:23:35.206223 #1]  INFO -- : Замена (?-mix:#?default_text_search_config *=.*) на default_text_search_config = '$db_default_text_search_config' в /etc/postgresql/13/main/postgresql.conf
I, [2021-01-27T02:23:35.207160 #1]  INFO -- : > install -d -m 0755 -o postgres -g postgres /shared/postgres_backup
I, [2021-01-27T02:23:35.209131 #1]  INFO -- :
I, [2021-01-27T02:23:35.209339 #1]  INFO -- : Замена (?-mix:#?checkpoint_segments *=.*) на checkpoint_segments = $db_checkpoint_segments в /etc/postgresql/13/main/postgresql.conf
I, [2021-01-27T02:23:35.209556 #1]  INFO -- : Замена (?-mix:#?logging_collector *=.*) на logging_collector = $db_logging_collector в /etc/postgresql/13/main/postgresql.conf
I, [2021-01-27T02:23:35.210628 #1]  INFO -- : Замена (?-mix:#?log_min_duration_statement *=.*) на log_min_duration_statement = $db_log_min_duration_statement в /etc/postgresql/13/main/postgresql.conf
I, [2021-01-27T02:23:35.211627 #1]  INFO -- : Замена (?-mix:^#local +replication +postgres +peer$) на local replication postgres peer в /etc/postgresql/13/main/pg_hba.conf
I, [2021-01-27T02:23:35.211812 #1]  INFO -- : Замена (?-mix:^host.*all.*all.*127.*$) на host all all 0.0.0.0/0 md5 в /etc/postgresql/13/main/pg_hba.conf
I, [2021-01-27T02:23:35.212556 #1]  INFO -- : > HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/13/bin/postmaster -D /etc/postgresql/13/main
I, [2021-01-27T02:23:35.213655 #1]  INFO -- : > sleep 5
2021-01-27 02:23:35.274 UTC [51] LOG:  запуск PostgreSQL 13.1 (Debian 13.1-1.pgdg100+1) на x86_64-pc-linux-gnu, скомпилировано gcc (Debian 8.3.0-6) 8.3.0, 64-бит
2021-01-27 02:23:35.274 UTC [51] LOG:  прослушивание IPv4 адреса "0.0.0.0", порт 5432
2021-01-27 02:23:35.274 UTC [51] LOG:  прослушивание IPv6 адреса "::", порт 5432
2021-01-27 02:23:35.278 UTC [51] LOG:  прослушивание Unix-сокета "/var/run/postgresql/.s.PGSQL.5432"
2021-01-27 02:23:35.285 UTC [54] LOG:  система баз данных была выключена в 2021-01-22 18:45:58 UTC
2021-01-27 02:23:35.293 UTC [51] LOG:  система баз данных готова к принятию соединений
I, [2021-01-27T02:23:40.215863 #1]  INFO -- :
I, [2021-01-27T02:23:40.216095 #1]  INFO -- : > su postgres -c 'createdb discourse' || true
2021-01-27 02:23:40.254 UTC [64] postgres@postgres ERROR:  база данных "discourse" уже существует
2021-01-27 02:23:40.254 UTC [64] postgres@postgres STATEMENT:  CREATE DATABASE discourse;
createdb: ошибка: создание базы данных не удалось: ERROR:  база данных "discourse" уже существует
I, [2021-01-27T02:23:40.255326 #1]  INFO -- :
I, [2021-01-27T02:23:40.255544 #1]  INFO -- : > su postgres -c 'psql discourse -c "create user discourse;"' || true
2021-01-27 02:23:40.297 UTC [75] postgres@discourse ERROR:  роль "discourse" уже существует
2021-01-27 02:23:40.297 UTC [75] postgres@discourse STATEMENT:  create user discourse;
ERROR:  роль "discourse" уже существует
I, [2021-01-27T02:23:40.298381 #1]  INFO -- :
I, [2021-01-27T02:23:40.298564 #1]  INFO -- : > su postgres -c 'psql discourse -c "grant all privileges on database discourse to discourse;"' || true
I, [2021-01-27T02:23:40.339257 #1]  INFO -- : GRANT

I, [2021-01-27T02:23:40.339469 #1]  INFO -- : > su postgres -c 'psql discourse -c "alter schema public owner to discourse;"'
I, [2021-01-27T02:23:40.381081 #1]  INFO -- : ALTER SCHEMA

I, [2021-01-27T02:23:40.381291 #1]  INFO -- : > su postgres -c 'psql template1 -c "create extension if not exists hstore;"'
NOTICE:  расширение "hstore" уже существует, пропускаем
I, [2021-01-27T02:23:40.424028 #1]  INFO -- : CREATE EXTENSION

I, [2021-01-27T02:23:40.424230 #1]  INFO -- : > su postgres -c 'psql template1 -c "create extension if not exists pg_trgm;"'
NOTICE:  расширение "pg_trgm" уже существует, пропускаем
I, [2021-01-27T02:23:40.465201 #1]  INFO -- : CREATE EXTENSION

I, [2021-01-27T02:23:40.465402 #1]  INFO -- : > su postgres -c 'psql discourse -c "create extension if not exists hstore;"'
NOTICE:  расширение "hstore" уже существует, пропускаем
I, [2021-01-27T02:23:40.505848 #1]  INFO -- : CREATE EXTENSION

I, [2021-01-27T02:23:40.506132 #1]  INFO -- : > su postgres -c 'psql discourse -c "create extension if not exists pg_trgm;"'
NOTICE:  расширение "pg_trgm" уже существует, пропускаем
I, [2021-01-27T02:23:40.546197 #1]  INFO -- : CREATE EXTENSION

I, [2021-01-27T02:23:40.546483 #1]  INFO -- : > sudo -u postgres psql discourse
I, [2021-01-27T02:23:40.547907 #1]  INFO -- : update pg_database set encoding = pg_char_to_encoding('UTF8') where datname = 'discourse' AND encoding = pg_char_to_encoding('SQL_ASCII');

I, [2021-01-27T02:23:40.593818 #1]  INFO -- : Файл > /var/lib/postgresql/take-database-backup  chmod: +x  chown: postgres:postgres
I, [2021-01-27T02:23:40.595848 #1]  INFO -- : Файл > /var/spool/cron/crontabs/postgres  chmod:   chown:
I, [2021-01-27T02:23:40.595932 #1]  INFO -- : > echo postgres установлен!
I, [2021-01-27T02:23:40.597420 #1]  INFO -- : postgres установлен!

I, [2021-01-27T02:23:40.600831 #1]  INFO -- : Файл > /etc/service/redis/run  chmod: +x  chown:
I, [2021-01-27T02:23:40.604240 #1]  INFO -- : Файл > /etc/service/redis/log/run  chmod: +x  chown:
I, [2021-01-27T02:23:40.607627 #1]  INFO -- : Файл > /etc/runit/3.d/10-redis  chmod: +x  chown:
I, [2021-01-27T02:23:40.607771 #1]  INFO -- : Замена daemonize yes на пустое значение в /etc/redis/redis.conf
I, [2021-01-27T02:23:40.608189 #1]  INFO -- : Замена (?-mix:^pidfile.*$) на пустое значение в /etc/redis/redis.conf
I, [2021-01-27T02:23:40.609758 #1]  INFO -- : > install -d -m 0755 -o redis -g redis /shared/redis_data
I, [2021-01-27T02:23:40.611653 #1]  INFO -- :
I, [2021-01-27T02:23:40.611895 #1]  INFO -- : Замена (?-mix:^logfile.*$) на logfile "" в /etc/redis/redis.conf
I, [2021-01-27T02:23:40.612224 #1]  INFO -- : Замена (?-mix:^bind .*$) на пустое значение в /etc/redis/redis.conf
I, [2021-01-27T02:23:40.613276 #1]  INFO -- : Замена (?-mix:^dir .*$) на dir /shared/redis_data в /etc/redis/redis.conf
I, [2021-01-27T02:23:40.614500 #1]  INFO -- : Замена (?-mix:^protected-mode yes) на protected-mode no в /etc/redis/redis.conf
I, [2021-01-27T02:23:40.615551 #1]  INFO -- : Замена # io-threads 4 на io-threads $redis_io_threads в /etc/redis/redis.conf
I, [2021-01-27T02:23:40.616681 #1]  INFO -- : > echo redis установлен
I, [2021-01-27T02:23:40.618206 #1]  INFO -- : redis установлен

I, [2021-01-27T02:23:40.618336 #1]  INFO -- : > cat /etc/redis/redis.conf | grep logfile
I, [2021-01-27T02:23:40.621038 #1]  INFO -- : logfile ""

I, [2021-01-27T02:23:40.621135 #1]  INFO -- : > exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf
I, [2021-01-27T02:23:40.622175 #1]  INFO -- : > sleep 10
168:C 27 Jan 2021 02:23:40.625 # oO0OoO0OoO0Oo Redis запускается oO0OoO0OoO0Oo
168:C 27 Jan 2021 02:23:40.625 # Версия Redis=6.0.9, бит=64, коммит=00000000, изменено=0, pid=168, только что запущен
168:C 27 Jan 2021 02:23:40.625 # Конфигурация загружена
                _._
           _.-``__ ''-._
      _.-``    `.  `_.  ''-._           Redis 6.0.9 (00000000/0) 64 bit
  .-`` .-```.  ```\/    _.,_ ''-._
 (    '      ,       .-`  | `,    )     Работает в автономном режиме
 |`-._`-...-` __...-.``-._|'` _.-'|     Порт: 6379
 |    `-._   `._    /     _.-'    |     PID: 168
  `-._    `-._  `-./  _.-'    _.-'
 |`-._`-._    `-.__.-'    _.-'_.-'|
 |    `-._`-._        _.-'_.-'    |           http://redis.io
  `-._    `-._`-.__.-'_.-'    _.-'
 |`-._`-._    `-.__.-'    _.-'_.-'|
 |    `-._`-._        _.-'_.-'    |
  `-._    `-._`-.__.-'_.-'    _.-'
      `-._    `-.__.-'    _.-'
          `-._        _.-'
              `-.__.-'

168:M 27 Jan 2021 02:23:40.626 # ПРЕДУПРЕЖДЕНИЕ: Настройка TCP backlog 511 не может быть применена, так как /proc/sys/net/core/somaxconn установлено в меньшее значение 128.
168:M 27 Jan 2021 02:23:40.626 # Сервер инициализирован
168:M 27 Jan 2021 02:23:40.626 # ПРЕДУПРЕЖДЕНИЕ: overcommit_memory установлен в 0! Фоновое сохранение может завершиться ошибкой при нехватке памяти. Чтобы исправить эту проблему, добавьте 'vm.overcommit_memory = 1' в /etc/sysctl.conf, затем перезагрузитесь или выполните команду 'sysctl vm.overcommit_memory=1', чтобы изменения вступили в силу.
168:M 27 Jan 2021 02:23:40.626 # ПРЕДУПРЕЖДЕНИЕ: у вас включена поддержка прозрачных больших страниц (THP) в ядре. Это создаст проблемы с задержками и использованием памяти в Redis. Чтобы исправить эту проблему, выполните команду 'echo madvise > /sys/kernel/mm/transparent_hugepage/enabled' от root и добавьте её в /etc/rc.local, чтобы сохранить настройку после перезагрузки. Redis должен быть перезапущен после отключения THP (установлено в 'madvise' или 'never').
168:M 27 Jan 2021 02:23:40.627 * Загрузка RDB, созданной в версии 6.0.9
168:M 27 Jan 2021 02:23:40.627 * Возраст RDB: 373062 секунд
168:M 27 Jan 2021 02:23:40.627 * Использование памяти при создании RDB: 0.77 Мб
168:M 27 Jan 2021 02:23:40.627 * База данных загружена с диска: 0.001 секунд
168:M 27 Jan 2021 02:23:40.627 * Готова к принятию соединений
I, [2021-01-27T02:23:50.624174 #1]  INFO -- :
I, [2021-01-27T02:23:50.624368 #1]  INFO -- : > thpoff echo "thpoff установлен!"
I, [2021-01-27T02:23:50.628194 #1]  INFO -- : thpoff установлен!

I, [2021-01-27T02:23:50.628403 #1]  INFO -- : > /usr/local/bin/ruby -e 'if ENV["DISCOURSE_SMTP_ADDRESS"] == "smtp.example.com"; puts "Прерывание! Почта не настроена!"; exit 1; end'
I, [2021-01-27T02:23:50.684626 #1]  INFO -- :
I, [2021-01-27T02:23:50.684797 #1]  INFO -- : > /usr/local/bin/ruby -e 'if ENV["DISCOURSE_HOSTNAME"] == "discourse.example.com"; puts "Прерывание! Домен не настроен!"; exit 1; end'
I, [2021-01-27T02:23:50.740355 #1]  INFO -- :
I, [2021-01-27T02:23:50.740509 #1]  INFO -- : > /usr/local/bin/ruby -e 'if (ENV["DISCOURSE_CDN_URL"] || "")[0..1] == "//"; puts "Прерывание! CDN должен иметь указанный протокол. После исправления вам следует пересобрать ваши посты, чтобы исправить все посты."; exit 1; end'
I, [2021-01-27T02:23:50.795416 #1]  INFO -- :
I, [2021-01-27T02:23:50.795561 #1]  INFO -- : > chown -R discourse /home/discourse
I, [2021-01-27T02:23:51.993394 #1]  INFO -- :
I, [2021-01-27T02:23:51.993649 #1]  INFO -- : > rm -f /etc/cron.d/anacron
I, [2021-01-27T02:23:51.996154 #1]  INFO -- :
I, [2021-01-27T02:23:51.998656 #1]  INFO -- : Файл > /etc/cron.d/anacron  chmod:   chown:
I, [2021-01-27T02:23:52.002447 #1]  INFO -- : Файл > /etc/runit/1.d/copy-env  chmod: +x  chown:
I, [2021-01-27T02:23:52.005954 #1]  INFO -- : Файл > /etc/service/unicorn/run  chmod: +x  chown:
I, [2021-01-27T02:23:52.009632 #1]  INFO -- : Файл > /etc/service/nginx/run  chmod: +x  chown:
I, [2021-01-27T02:23:52.012917 #1]  INFO -- : Файл > /etc/runit/3.d/01-nginx  chmod: +x  chown:
I, [2021-01-27T02:23:52.016214 #1]  INFO -- : Файл > /etc/runit/3.d/02-unicorn  chmod: +x  chown:
I, [2021-01-27T02:23:52.016297 #1]  INFO -- : Замена # postgres на sv start postgres || exit 1 в /etc/service/unicorn/run
I, [2021-01-27T02:23:52.016484 #1]  INFO -- : > exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf
I, [2021-01-27T02:23:52.018137 #1]  INFO -- : > cd /var/www/discourse && git reset --hard
196:C 27 Jan 2021 02:23:52.022 # oO0OoO0OoO0Oo Redis запускается oO0OoO0OoO0Oo
196:C 27 Jan 2021 02:23:52.022 # Версия Redis=6.0.9, бит=64, коммит=00000000, изменено=0, pid=196, только что запущен
196:C 27 Jan 2021 02:23:52.022 # Конфигурация загружена
196:M 27 Jan 2021 02:23:52.022 # Не удалось создать TCP-сокет для прослушивания сервера *:6379: bind: Адрес уже используется
Проверка файлов: 100% (28296/28296), завершено.
I, [2021-01-27T02:23:53.939497 #1]  INFO -- : HEAD теперь указывает на c4552e9c FIX: Автозапуск видео всегда должен быть без звука (#11533)

I, [2021-01-27T02:23:53.939601 #1]  INFO -- : > cd /var/www/discourse && git clean -f
I, [2021-01-27T02:23:54.022025 #1]  INFO -- :
I, [2021-01-27T02:23:54.022124 #1]  INFO -- : > cd /var/www/discourse && git remote set-branches --add origin master
I, [2021-01-27T02:23:54.025577 #1]  INFO -- :
I, [2021-01-27T02:23:54.025664 #1]  INFO -- : > cd /var/www/discourse && git remote set-branches origin tests-passed
I, [2021-01-27T02:23:54.028750 #1]  INFO -- :
I, [2021-01-27T02:23:54.028832 #1]  INFO -- : > cd /var/www/discourse && git fetch --depth 1 origin tests-passed
Из https://github.com/discourse/discourse
 * ветка              tests-passed -> FETCH_HEAD
 * [новая ветка]        tests-passed -> origin/tests-passed
I, [2021-01-27T02:23:57.285604 #1]  INFO -- :
I, [2021-01-27T02:23:57.285712 #1]  INFO -- : > cd /var/www/discourse && git checkout tests-passed
Переключено на новую ветку 'tests-passed'
I, [2021-01-27T02:23:57.857114 #1]  INFO -- : Ветка 'tests-passed' настроена для отслеживания удалённой ветки 'tests-passed' из 'origin'.

I, [2021-01-27T02:23:57.857221 #1]  INFO -- : > cd /var/www/discourse && mkdir -p tmp
I, [2021-01-27T02:23:57.860401 #1]  INFO -- :
I, [2021-01-27T02:23:57.860491 #1]  INFO -- : > cd /var/www/discourse && chown discourse:www-data tmp
I, [2021-01-27T02:23:57.862857 #1]  INFO -- :
I, [2021-01-27T02:23:57.862925 #1]  INFO -- : > cd /var/www/discourse && mkdir -p tmp/pids
I, [2021-01-27T02:23:57.865399 #1]  INFO -- :
I, [2021-01-27T02:23:57.865471 #1]  INFO -- : > cd /var/www/discourse && mkdir -p tmp/sockets
I, [2021-01-27T02:23:57.867854 #1]  INFO -- :
I, [2021-01-27T02:23:57.867922 #1]  INFO -- : > cd /var/www/discourse && touch tmp/.gitkeep
I, [2021-01-27T02:23:57.870065 #1]  INFO -- :
I, [2021-01-27T02:23:57.870133 #1]  INFO -- : > cd /var/www/discourse && mkdir -p                    /shared/log/rails
I, [2021-01-27T02:23:57.872299 #1]  INFO -- :
I, [2021-01-27T02:23:57.872361 #1]  INFO -- : > cd /var/www/discourse && bash -c "touch -a           /shared/log/rails/{production,production_errors,unicorn.stdout,unicorn.stderr,sidekiq}.log"
I, [2021-01-27T02:23:57.875562 #1]  INFO -- :
I, [2021-01-27T02:23:57.875646 #1]  INFO -- : > cd /var/www/discourse && bash -c "ln    -s           /shared/log/rails/{production,production_errors,unicorn.stdout,unicorn.stderr,sidekiq}.log /var/www/discourse/log"
I, [2021-01-27T02:23:57.879076 #1]  INFO -- :
I, [2021-01-27T02:23:57.879144 #1]  INFO -- : > cd /var/www/discourse && bash -c "mkdir -p           /shared/{uploads,backups}"
I, [2021-01-27T02:23:57.882376 #1]  INFO -- :
I, [2021-01-27T02:23:57.882446 #1]  INFO -- : > cd /var/www/discourse && bash -c "ln    -s           /shared/{uploads,backups} /var/www/discourse/public"
I, [2021-01-27T02:23:57.885522 #1]  INFO -- :
I, [2021-01-27T02:23:57.885613 #1]  INFO -- : > cd /var/www/discourse && bash -c "mkdir -p           /shared/tmp/{backups,restores}"
I, [2021-01-27T02:23:57.888826 #1]  INFO -- :
I, [2021-01-27T02:23:57.888895 #1]  INFO -- : > cd /var/www/discourse && bash -c "ln    -s           /shared/tmp/{backups,restores} /var/www/discourse/tmp"
I, [2021-01-27T02:23:57.891921 #1]  INFO -- :
I, [2021-01-27T02:23:57.891999 #1]  INFO -- : > cd /var/www/discourse && chown -R discourse:www-data /shared/log/rails /shared/uploads /shared/backups /shared/tmp
I, [2021-01-27T02:23:57.894182 #1]  INFO -- :
I, [2021-01-27T02:23:57.894258 #1]  INFO -- : > cd /var/www/discourse && find public/plugins/ -maxdepth 1 -xtype l -delete
I, [2021-01-27T02:23:57.896716 #1]  INFO -- :
I, [2021-01-27T02:23:57.896844 #1]  INFO -- : Замена # redis на sv start redis || exit 1 в /etc/service/unicorn/run
I, [2021-01-27T02:23:57.897125 #1]  INFO -- : > cd /var/www/discourse/plugins && mkdir -p plugins
I, [2021-01-27T02:23:57.899325 #1]  INFO -- :
I, [2021-01-27T02:23:57.899394 #1]  INFO -- : > cd /var/www/discourse/plugins && git clone https://github.com/discourse/docker_manager.git
Клонирование в 'docker_manager'...
I, [2021-01-27T02:23:59.343670 #1]  INFO -- :
I, [2021-01-27T02:23:59.343784 #1]  INFO -- : > cd /var/www/discourse/plugins && git clone https://github.com/discourse/discourse-solved.git
Клонирование в 'discourse-solved'...
I, [2021-01-27T02:24:00.242855 #1]  INFO -- :
I, [2021-01-27T02:24:00.242963 #1]  INFO -- : > cd /var/www/discourse/plugins && git clone https://github.com/discourse/discourse-feature-voting.git
Клонирование в 'discourse-feature-voting'...
I, [2021-01-27T02:24:01.142839 #1]  INFO -- :
I, [2021-01-27T02:24:01.143097 #1]  INFO -- : > cp /var/www/discourse/config/nginx.sample.conf /etc/nginx/conf.d/discourse.conf
I, [2021-01-27T02:24:01.145932 #1]  INFO -- :
I, [2021-01-27T02:24:01.146056 #1]  INFO -- : > rm /etc/nginx/sites-enabled/default
I, [2021-01-27T02:24:01.147930 #1]  INFO -- :
I, [2021-01-27T02:24:01.148013 #1]  INFO -- : > mkdir -p /var/nginx/cache
I, [2021-01-27T02:24:01.149838 #1]  INFO -- :
I, [2021-01-27T02:24:01.150069 #1]  INFO -- : Замена pid /run/nginx.pid; на daemon off; в /etc/nginx/nginx.conf
I, [2021-01-27T02:24:01.150307 #1]  INFO -- : Замена (?m-ix:upstream[^\}]+\}) на upstream discourse { server 127.0.0.1:3000; } в /etc/nginx/conf.d/discourse.conf
I, [2021-01-27T02:24:01.150480 #1]  INFO -- : Замена (?-mix:server_name.+$) на server_name _ ; в /etc/nginx/conf.d/discourse.conf
I, [2021-01-27T02:24:01.151135 #1]  INFO -- : Замена (?-mix:client_max_body_size.+$) на client_max_body_size $upload_size ; в /etc/nginx/conf.d/discourse.conf
I, [2021-01-27T02:24:01.151717 #1]  INFO -- : > echo "настройка веб-сервера завершена"
I, [2021-01-27T02:24:01.153224 #1]  INFO -- : настройка веб-сервера завершена

I, [2021-01-27T02:24:01.153440 #1]  INFO -- : > cd /var/www/discourse && gem update bundler
I, [2021-01-27T02:24:05.839906 #1]  INFO -- : Обновление установленных пакетов
Обновление bundler
Успешно установлен bundler-2.2.7
Обновлены пакеты: bundler

Part 2

[2021-01-27T02:24:05.840013 #1]  INFO -- : > cd /var/www/discourse && find /var/www/discourse ! -user discourse -exec chown discourse {} \+
    I, [2021-01-27T02:24:12.608457 #1]  INFO -- :
    I, [2021-01-27T02:24:12.608656 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle install --deployment --retry 3 --jobs 4 --verbose --without test development'
    [DEPRECATED] The `--deployment` flag is deprecated because it relies on being remembered across bundler invocations, which bundler will no longer do in future versions. Instead please use `bundle config set --local deployment 'true'`, and stop using this flag
    [DEPRECATED] The `--without` flag is deprecated because it relies on being remembered across bundler invocations, which bundler will no longer do in future versions. Instead please use `bundle config set --local without 'test development'`, and stop using this flag
    I, [2021-01-27T02:24:39.339048 #1]  INFO -- : Running `bundle install --deployment --jobs 4 --retry 3 --verbose --without "test" "development"` with bundler 2.2.7
    Frozen, using resolution from the lockfile
    The definition is missing ["rake-13.0.3", "concurrent-ruby-1.1.8", "i18n-1.8.7", "minitest-5.14.3", "racc-1.5.2", "nokogiri-1.11.1-x86_64-linux", "loofah-2.9.0", "chunky_png-1.4.0", "css_parser-1.8.0", "thor-1.1.0", "faraday-net_http-1.0.1", "ruby2_keywords-0.0.4", "faraday-1.3.0", "fastimage-2.2.1", "ffi-1.14.2", "json-2.5.1", "logster-2.9.5", "sidekiq-6.1.3", "mini_sql-1.0.1", "mini_suffix-0.3.2", "oauth-0.5.5", "oj-3.11.1", "omniauth-oauth2-1.7.1", "sanitize-5.2.3", "onebox-2.2.2", "rack-mini-profiler-2.3.0", "rqrcode_core-0.2.0", "rqrcode-1.2.0", "unicorn-5.8.0"]
    HTTP GET https://index.rubygems.org/versions
    HTTP 206 Partial Content https://index.rubygems.org/versions
    HTTP GET https://index.rubygems.org/versions
    HTTP 200 OK https://index.rubygems.org/versions
    Fetching gem metadata from https://rubygems.org/
    Looking up gems ["rake", "concurrent-ruby", "i18n", "minitest", "thread_safe", "tzinfo", "zeitwerk", "activesupport", "builder", "erubi", "racc", "nokogiri", "rails-dom-testing", "crass", "loofah", "rails-html-sanitizer", "actionview", "rack", "rack-test", "actionpack", "globalid", "activejob", "mini_mime", "mail", "actionmailer", "actionview_precompiler", "activemodel", "active_model_serializers", "activerecord", "public_suffix", "addressable", "aws-eventstream", "aws-partitions", "aws-sigv4", "jmespath", "aws-sdk-core", "aws-sdk-kms", "aws-sdk-s3", "aws-sdk-sns", "ember-source", "execjs", "barber", "msgpack", "bootsnap", "byebug", "cbor", "chunky_png", "coderay", "colored2", "connection_pool", "openssl-signature_algorithm", "cose", "cppjieba_rb", "css_parser", "diffy", "ember-data-source", "sprockets", "ember-handlebars-template", "method_source", "thor", "railties", "jquery-rails", "discourse-ember-rails", "discourse-ember-source", "discourse-fonts", "exifr", "fspath", "image_size", "in_threads", "progress", "discourse_image_optim", "email_reply_trimmer", "excon", "faraday-net_http", "multipart-post", "ruby2_keywords", "faraday", "fast_blank", "fast_xs", "fastimage", "ffi", "gc_tracer", "guess_html_encoding", "hashie", "highline", "hkdf", "htmlentities", "http_accept_language", "json", "jwt", "kgio", "libv8", "request_store", "lograge", "logstash-event", "logstash-logger", "logster", "lru_redux", "lz4-ruby", "maxminddb", "memory_profiler", "message_bus", "mini_racer", "redis", "sidekiq", "mini_scheduler", "mini_sql", "mini_suffix", "multi_json", "multi_xml", "mustache", "nio4r", "nokogumbo", "oauth", "oauth2", "oj", "omniauth", "omniauth-oauth2", "omniauth-facebook", "omniauth-github", "omniauth-google-oauth2", "omniauth-oauth", "omniauth-twitter", "sanitize", "onebox", "optimist", "pg", "pry", "pry-byebug", "pry-rails", "puma", "r2", "rack-mini-profiler", "rack-protection", "rails_failover", "rails_multisite", "raindrops", "rbtrace", "rchardet", "redis-namespace", "rinku", "rotp", "rqrcode_core", "rqrcode", "rtlit", "ruby-readability", "rubyzip", "sassc", "sprockets-rails", "tilt", "sassc-rails", "seed-fu", "sshkey", "stackprof", "uglifier", "unf_ext", "unf", "unicorn", "webpush", "xorcist"]
    HTTP GET https://index.rubygems.org/info/racc
    HTTP GET https://index.rubygems.org/info/nokogiri
    HTTP GET https://index.rubygems.org/info/tzinfo
    HTTP GET https://index.rubygems.org/info/loofah
    HTTP GET https://index.rubygems.org/info/activemodel
    HTTP GET https://index.rubygems.org/info/activejob
    HTTP GET https://index.rubygems.org/info/concurrent-ruby
    HTTP GET https://index.rubygems.org/info/actionview
    HTTP GET https://index.rubygems.org/info/actionpack
    HTTP GET https://index.rubygems.org/info/i18n
    HTTP 200 OK https://index.rubygems.org/info/racc
    HTTP GET https://index.rubygems.org/info/activesupport
    HTTP GET https://index.rubygems.org/info/css_parser
    HTTP GET https://index.rubygems.org/info/actionmailer
    HTTP GET https://index.rubygems.org/info/minitest
    HTTP GET https://index.rubygems.org/info/aws-sdk-s3
    HTTP 206 Partial Content https://index.rubygems.org/info/actionview
    HTTP GET https://index.rubygems.org/info/aws-sdk-kms
    HTTP GET https://index.rubygems.org/info/activerecord
    HTTP GET https://index.rubygems.org/info/aws-partitions
    HTTP GET https://index.rubygems.org/info/aws-sdk-sns
    HTTP GET https://index.rubygems.org/info/aws-sdk-core
    HTTP GET https://index.rubygems.org/info/chunky_png
    HTTP GET https://index.rubygems.org/info/msgpack
    HTTP 206 Partial Content https://index.rubygems.org/info/i18n
    HTTP 206 Partial Content https://index.rubygems.org/info/nokogiri
    HTTP 206 Partial Content https://index.rubygems.org/info/activemodel
    HTTP 206 Partial Content https://index.rubygems.org/info/activejob
    HTTP 206 Partial Content https://index.rubygems.org/info/tzinfo
    HTTP 206 Partial Content https://index.rubygems.org/info/loofah
    HTTP 206 Partial Content https://index.rubygems.org/info/css_parser
    HTTP 206 Partial Content https://index.rubygems.org/info/aws-sdk-kms
    HTTP 206 Partial Content https://index.rubygems.org/info/activesupport
    HTTP GET https://index.rubygems.org/info/thor
    HTTP GET https://index.rubygems.org/info/railties
    HTTP 206 Partial Content https://index.rubygems.org/info/actionmailer
    HTTP 206 Partial Content https://index.rubygems.org/info/aws-partitions
    HTTP 206 Partial Content https://index.rubygems.org/info/chunky_png
    HTTP 206 Partial Content https://index.rubygems.org/info/aws-sdk-sns
    HTTP 206 Partial Content https://index.rubygems.org/info/actionpack
    HTTP 206 Partial Content https://index.rubygems.org/info/concurrent-ruby
    HTTP GET https://index.rubygems.org/info/faraday-net_http
    HTTP 206 Partial Content https://index.rubygems.org/info/railties
    HTTP 206 Partial Content https://index.rubygems.org/info/aws-sdk-s3
    HTTP 206 Partial Content https://index.rubygems.org/info/aws-sdk-core
    HTTP 206 Partial Content https://index.rubygems.org/info/activerecord
    HTTP 206 Partial Content https://index.rubygems.org/info/minitest
    HTTP 206 Partial Content https://index.rubygems.org/info/thor
    HTTP GET https://index.rubygems.org/info/ruby2_keywords
    HTTP GET https://index.rubygems.org/info/faraday
    HTTP 206 Partial Content https://index.rubygems.org/info/ruby2_keywords
    HTTP 206 Partial Content https://index.rubygems.org/info/msgpack
    HTTP GET https://index.rubygems.org/info/fastimage
    HTTP 200 OK https://index.rubygems.org/info/faraday-net_http
    HTTP 206 Partial Content https://index.rubygems.org/info/faraday
    HTTP GET https://index.rubygems.org/info/json
    HTTP 206 Partial Content https://index.rubygems.org/info/json
    HTTP GET https://index.rubygems.org/info/logster
    HTTP GET https://index.rubygems.org/info/mini_suffix
    HTTP GET https://index.rubygems.org/info/rack-mini-profiler
    HTTP 206 Partial Content https://index.rubygems.org/info/fastimage
    HTTP GET https://index.rubygems.org/info/mini_sql
    HTTP GET https://index.rubygems.org/info/oauth
    HTTP GET https://index.rubygems.org/info/sidekiq
    HTTP GET https://index.rubygems.org/info/omniauth-oauth2
    HTTP 206 Partial Content https://index.rubygems.org/info/rack-mini-profiler
    HTTP GET https://index.rubygems.org/info/omniauth-github
    HTTP GET https://index.rubygems.org/info/omniauth
    HTTP GET https://index.rubygems.org/info/onebox
    HTTP GET https://index.rubygems.org/info/oj
    HTTP GET https://index.rubygems.org/info/sanitize
    HTTP 206 Partial Content https://index.rubygems.org/info/logster
    HTTP 206 Partial Content https://index.rubygems.org/info/oj
    HTTP 206 Partial Content https://index.rubygems.org/info/omniauth
    HTTP 206 Partial Content https://index.rubygems.org/info/mini_suffix
    HTTP 206 Partial Content https://index.rubygems.org/info/omniauth-github
    HTTP GET https://index.rubygems.org/info/rqrcode
    HTTP GET https://index.rubygems.org/info/rqrcode_core
    HTTP 206 Partial Content https://index.rubygems.org/info/mini_sql
    HTTP GET https://index.rubygems.org/info/unicorn
    HTTP 206 Partial Content https://index.rubygems.org/info/sanitize
    HTTP 206 Partial Content https://index.rubygems.org/info/omniauth-oauth2
    HTTP 206 Partial Content https://index.rubygems.org/info/oauth
    HTTP 206 Partial Content https://index.rubygems.org/info/rqrcode_core
    HTTP 206 Partial Content https://index.rubygems.org/info/rqrcode
    HTTP 206 Partial Content https://index.rubygems.org/info/sidekiq
    HTTP 206 Partial Content https://index.rubygems.org/info/unicorn
    HTTP 206 Partial Content https://index.rubygems.org/info/onebox
    Looking up gems ["rails-deprecated_sanitizer", "atomic", "mime-types", "treetop", "tlsmail", "rspec", "json_pure", "jsonapi", "case_transform", "jsonapi-renderer", "ember-template-compiler-source", "handlebars-source", "columnize", "debugger-linecache", "slop", "rb-readline", "snappy", "hike", "ruby_parser", "rails", "hoe", "weakling", "mini_portile", "mini_portile2", "pkg-config", "rb-appscript", "xattr", "ffi-xattr", "bcrypt-ruby", "erubis", "rake-compiler", "activemodel-globalid", "functional-ruby", "ref", "memcache-client", "termios", "text-format", "rdoc", "stud", "eventmachine", "thin", "faraday-middleware", "httpauth", "rack-mount", "rack-cache", "journey", "jamespath", "http-2", "win32console", "yard", "spoon", "arel", "activerecord-deprecated_finders", "pry-doc", "listen", "escape_utils", "trollop", "rack-ssl", "base32", "sass", "bundler", "therubyracer", "bigdecimal", "oa-core", "oa-oauth", "oa-openid", "oa-basic", "oa-enterprise", "oa-more", "hpricot", "ruby-hmac", "celluloid", "compass", "sprockets-sass", "sinatra", "slim", "moneta", "opengraph_parser", "verbal_expressions", "hexpress", "pdf-reader"]
    HTTP GET https://index.rubygems.org/info/hoe
    HTTP GET https://index.rubygems.org/info/json_pure
    HTTP 206 Partial Content https://index.rubygems.org/info/hoe
    HTTP 206 Partial Content https://index.rubygems.org/info/json_pure
    HTTP GET https://index.rubygems.org/info/snappy
    HTTP GET https://index.rubygems.org/info/rails
    HTTP GET https://index.rubygems.org/info/ruby_parser
    HTTP GET https://index.rubygems.org/info/http-2
    HTTP GET https://index.rubygems.org/info/yard
    HTTP GET https://index.rubygems.org/info/bundler
    HTTP GET https://index.rubygems.org/info/listen
    HTTP 206 Partial Content https://index.rubygems.org/info/snappy
    HTTP 206 Partial Content https://index.rubygems.org/info/rails
    HTTP 206 Partial Content https://index.rubygems.org/info/ruby_parser
    HTTP 206 Partial Content https://index.rubygems.org/info/yard
    HTTP 206 Partial Content https://index.rubygems.org/info/http-2
    HTTP 206 Partial Content https://index.rubygems.org/info/bundler
    HTTP 206 Partial Content https://index.rubygems.org/info/listen
    Looking up gems ["mime-types-data", "ruby_core_source", "debugger-ruby_core_source", "facets", "polyglot", "jsonapi-parser", "rspec-core", "rspec-expectations", "rspec-mocks", "bcrypt", "abstract", "text-hyphen", "multimap", "ZenTest", "RubyInline", "daemons", "metriks", "rack-openid", "ruby-openid-apps-discovery", "restclient", "rest-client", "curses", "sass-listen", "net-ldap", "rubyntlm", "pyu-ruby-sasl", "uuid", "XMLCanonicalizer", "timers", "facter", "celluloid-essentials", "celluloid-extras", "celluloid-fsm", "celluloid-pool", "celluloid-supervision", "dotenv", "nenv", "rspec-logsplit", "Ascii85", "ruby-rc4", "hashery", "afm", "ttfunk", "haml", "fssm", "compass-core", "compass-import-once", "rb-fsevent", "rb-inotify", "sprockets-helpers", "mongrel", "backports", "mustermann", "temple", "rubyforge", "gemcutter", "spruz", "snappy-jars", "activeresource", "actionwebservice", "actioncable", "activestorage", "actionmailbox", "actiontext", "ParseTree", "sexp_processor", "rb-fchange", "rb-kqueue", "celluloid-io", "ruby_dep"]
    HTTP GET https://index.rubygems.org/info/rspec-core
    HTTP GET https://index.rubygems.org/info/rspec-mocks
    HTTP GET https://index.rubygems.org/info/rspec-expectations
    HTTP 206 Partial Content https://index.rubygems.org/info/rspec-core
    HTTP GET https://index.rubygems.org/info/ttfunk
    HTTP GET https://index.rubygems.org/info/facter
    HTTP GET https://index.rubygems.org/info/activestorage
    HTTP GET https://index.rubygems.org/info/actionmailbox
    HTTP GET https://index.rubygems.org/info/actiontext
    HTTP 206 Partial Content https://index.rubygems.org/info/rspec-mocks
    HTTP GET https://index.rubygems.org/info/backports
    HTTP GET https://index.rubygems.org/info/actioncable
    HTTP GET https://index.rubygems.org/info/sexp_processor
    HTTP 206 Partial Content https://index.rubygems.org/info/ttfunk
    HTTP 206 Partial Content https://index.rubygems.org/info/rspec-expectations
    HTTP 206 Partial Content https://index.rubygems.org/info/facter
    HTTP 206 Partial Content https://index.rubygems.org/info/activestorage
    HTTP 206 Partial Content https://index.rubygems.org/info/actionmailbox
    HTTP 206 Partial Content https://index.rubygems.org/info/actiontext
    HTTP 206 Partial Content https://index.rubygems.org/info/actioncable
    HTTP 206 Partial Content https://index.rubygems.org/info/sexp_processor
    HTTP 206 Partial Content https://index.rubygems.org/info/backports
    Looking up gems ["ruby-openid", "archive-tar-minitar", "hitimes", "rbtree", "faraday_middleware", "yajl-ruby", "avl_tree", "netrc", "http-cookie", "http-accept", "log4r", "macaddr", "coveralls", "rubocop", "celluloid-gems", "dotenv-deployment", "blankslate", "cgi_multipart_eof_fix", "fastthread", "gem_plugin", "tool", "net-scp", "rails-observers", "activemodel-serializers-xml", "SexpProcessor", "win32-api", "rspec-support", "diff-lcs", "CFPropertyList", "sys-admin", "win32-dir", "windows-api", "windows-pr", "win32-security", "hocon", "marcel", "mimemagic", "coffee-rails", "em-hiredis", "faye-websocket", "websocket-driver"]
    HTTP GET https://index.rubygems.org/info/rbtree
    HTTP GET https://index.rubygems.org/info/rubocop
    HTTP GET https://index.rubygems.org/info/rspec-support
    HTTP GET https://index.rubygems.org/info/sys-admin
    HTTP 206 Partial Content https://index.rubygems.org/info/rubocop
    HTTP 206 Partial Content https://index.rubygems.org/info/sys-admin
    HTTP 206 Partial Content https://index.rubygems.org/info/rbtree
    HTTP 206 Partial Content https://index.rubygems.org/info/rspec-support
    Looking up gems ["ruby-yadis", "configuration", "mkrf", "roauth", "domain_name", "sqlite3", "test-unit", "minitar", "minitar-cli", "systemu", "net-ssh", "colorize", "simplecov", "term-ansicolor", "tins", "coffee-script", "ffi-win32-extensions", "libxml-ruby", "hiredis", "websocket-extensions", "rainbow", "parser", "powerpack", "ruby-progressbar", "astrolabe", "unicode-display_width", "parallel", "jaro_winkler", "psych", "rexml", "rubocop-ast", "regexp_parser"]
    HTTP GET https://index.rubygems.org/info/simplecov
    HTTP GET https://index.rubygems.org/info/parser
    HTTP GET https://index.rubygems.org/info/unicode-display_width
    HTTP GET https://index.rubygems.org/info/ruby-progressbar
    HTTP GET https://index.rubygems.org/info/tins
    HTTP GET https://index.rubygems.org/info/test-unit
    HTTP GET https://index.rubygems.org/info/psych
    HTTP GET https://index.rubygems.org/info/rubocop-ast
    HTTP GET https://index.rubygems.org/info/regexp_parser
    HTTP 206 Partial Content https://index.rubygems.org/info/simplecov
    HTTP 206 Partial Content https://index.rubygems.org/info/rubocop-ast
    HTTP 206 Partial Content https://index.rubygems.org/info/unicode-display_width
    HTTP 206 Partial Content https://index.rubygems.org/info/ruby-progressbar
    HTTP 206 Partial Content https://index.rubygems.org/info/regexp_parser
    HTTP 206 Partial Content https://index.rubygems.org/info/parser
    HTTP 206 Partial Content https://index.rubygems.org/info/test-unit
    HTTP 206 Partial Content https://index.rubygems.org/info/tins
    HTTP 206 Partial Content https://index.rubygems.org/info/psych
    Looking up gems ["powerbar", "needle", "jruby-pageant", "bcrypt_pbkdf", "rbnacl", "rbnacl-libsodium", "coffee-script-source", "simplecov-html", "docile", "lockfile", "simplecov_json_formatter", "strscan", "ast", "jar-dependencies", "power_assert", "sync"]
    HTTP GET https://index.rubygems.org/info/docile
    HTTP GET https://index.rubygems.org/info/bcrypt_pbkdf
    HTTP GET https://index.rubygems.org/info/ast
    HTTP GET https://index.rubygems.org/info/power_assert
    HTTP 206 Partial Content https://index.rubygems.org/info/docile
    HTTP 206 Partial Content https://index.rubygems.org/info/bcrypt_pbkdf
    HTTP 206 Partial Content https://index.rubygems.org/info/ast
    HTTP 206 Partial Content https://index.rubygems.org/info/power_assert
    Looking up gems ["ruby-maven", "ansi", "pattern-match"]
    Looking up gems ["maven-tools", "ruby-maven-libs"]
    Looking up gems ["virtus"]
    Looking up gems ["descendants_tracker", "axiom-types", "coercible", "equalizer"]
    Looking up gems ["adamantium", "ice_nine"]
    Looking up gems ["memoizable"]
    Fetching rake 13.0.3
    Installing rake 13.0.3
    0:  rake (13.0.3) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/rake-13.0.3.gemspec
    Using thread_safe 0.3.6
    Using zeitwerk 2.4.2
    3:  thread_safe (0.3.6) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/thread_safe-0.3.6.gemspec
    Fetching minitest 5.14.3
    Using builder 3.2.4
    0:  zeitwerk (2.4.2) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/zeitwerk-2.4.2.gemspec
    Using erubi 1.10.0
    Fetching concurrent-ruby 1.1.8
    0:  erubi (1.10.0) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/erubi-1.10.0.gemspec
    3:  builder (3.2.4) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/builder-3.2.4.gemspec
    Fetching racc 1.5.2
    Using crass 1.0.6
    0:  crass (1.0.6) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/crass-1.0.6.gemspec
    Using rack 2.2.3
    0:  rack (2.2.3) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/rack-2.2.3.gemspec
    Using mini_mime 1.0.2
    0:  mini_mime (1.0.2) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/mini_mime-1.0.2.gemspec
    Using public_suffix 4.0.6
    0:  public_suffix (4.0.6) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/public_suffix-4.0.6.gemspec
    Using aws-eventstream 1.1.0
    0:  aws-eventstream (1.1.0) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/aws-eventstream-1.1.0.gemspec
    Using aws-partitions 1.390.0
    0:  aws-partitions (1.390.0) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/aws-partitions-1.390.0.gemspec
    Using jmespath 1.4.0
    0:  jmespath (1.4.0) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/jmespath-1.4.0.gemspec
    Using ember-source 2.18.2
    0:  ember-source (2.18.2) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/ember-source-2.18.2.gemspec
    Using execjs 2.7.0
    0:  execjs (2.7.0) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/execjs-2.7.0.gemspec
    Using msgpack 1.3.3
    0:  msgpack (1.3.3) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/msgpack-1.3.3.gemspec
    Using bundler 2.2.7
    0:  bundler (2.2.7) from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.7/lib/bundler/source
    Using byebug 11.1.3
    0:  byebug (11.1.3) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/byebug-11.1.3.gemspec
    Using cbor 0.5.9.6
    0:  cbor (0.5.9.6) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/cbor-0.5.9.6.gemspec
    Fetching chunky_png 1.4.0
    Installing minitest 5.14.3
    Installing concurrent-ruby 1.1.8
    Installing racc 1.5.2 with native extensions
    Installing chunky_png 1.4.0
    2:  minitest (5.14.3) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/minitest-5.14.3.gemspec
    Using coderay 1.1.3
    2:  coderay (1.1.3) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/coderay-1.1.3.gemspec
    Using colored2 3.1.2
    2:  colored2 (3.1.2) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/colored2-3.1.2.gemspec
    Using connection_pool 2.2.3
    2:  connection_pool (2.2.3) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/connection_pool-2.2.3.gemspec
    Using openssl-signature_algorithm 1.0.0
    2:  openssl-signature_algorithm (1.0.0) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/openssl-signature_algorithm-1.0.0.gemspec
    Using cppjieba_rb 0.3.3
    2:  cppjieba_rb (0.3.3) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/cppjieba_rb-0.3.3.gemspec
    Using diffy 3.4.0
    2:  diffy (3.4.0) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/diffy-3.4.0.gemspec
    Using method_source 1.0.0
    2:  method_source (1.0.0) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/method_source-1.0.0.gemspec
    Fetching thor 1.1.0
    Installing thor 1.1.0
    Building native extensions. This could take a while...
    1:  concurrent-ruby (1.1.8) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/concurrent-ruby-1.1.8.gemspec
    2:  thor (1.1.0) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/thor-1.1.0.gemspec
    Using discourse-ember-source 3.12.2.2
    1:  discourse-ember-source (3.12.2.2) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/discourse-ember-source-3.12.2.2.gemspec
    Using discourse-fonts 0.0.5
    Using exifr 1.3.9
    2:  exifr (1.3.9) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/exifr-1.3.9.gemspec
    Using fspath 3.1.2
    2:  fspath (3.1.2) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/fspath-3.1.2.gemspec
    Using image_size 1.5.0
    2:  image_size (1.5.0) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/image_size-1.5.0.gemspec
    Using in_threads 1.5.4
    2:  in_threads (1.5.4) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/in_threads-1.5.4.gemspec
    Using progress 3.5.2
    2:  progress (3.5.2) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/progress-3.5.2.gemspec
    Using email_reply_trimmer 0.1.13
    2:  email_reply_trimmer (0.1.13) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/email_reply_trimmer-0.1.13.gemspec
    Using excon 0.78.1
    2:  excon (0.78.1) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/excon-0.78.1.gemspec
    1:  discourse-fonts (0.0.5) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/discourse-fonts-0.0.5.gemspec
    Using multipart-post 2.1.1
    1:  multipart-post (2.1.1) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/multipart-post-2.1.1.gemspec
    Fetching ruby2_keywords 0.0.4
    Fetching faraday-net_http 1.0.1
    Installing faraday-net_http 1.0.1
    Installing ruby2_keywords 0.0.4
    2:  faraday-net_http (1.0.1) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/faraday-net_http-1.0.1.gemspec
    1:  ruby2_keywords (0.0.4) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/ruby2_keywords-0.0.4.gemspec
    Using fast_blank 1.0.0
    2:  fast_blank (1.0.0) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/fast_blank-1.0.0.gemspec
    Using fast_xs 0.8.0
    2:  fast_xs (0.8.0) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/fast_xs-0.8.0.gemspec
    Fetching fastimage 2.2.1
    Fetching ffi 1.14.2
    Installing fastimage 2.2.1
    0:  chunky_png (1.4.0) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/chunky_png-1.4.0.gemspec
    Using gc_tracer 1.5.1
    0:  gc_tracer (1.5.1) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/gc_tracer-1.5.1.gemspec
    Using guess_html_encoding 0.0.11
    0:  guess_html_encoding (0.0.11) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/guess_html_encoding-0.0.11.gemspec
    Using hashie 4.1.0
    0:  hashie (4.1.0) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/hashie-4.1.0.gemspec
    Using highline 2.0.3
    0:  highline (2.0.3) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/highline-2.0.3.gemspec
    Using hkdf 0.3.0
    0:  hkdf (0.3.0) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/hkdf-0.3.0.gemspec
    Using htmlentities 4.3.4
    0:  htmlentities (4.3.4) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/htmlentities-4.3.4.gemspec
    Using http_accept_language 2.1.1
    0:  http_accept_language (2.1.1) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/http_accept_language-2.1.1.gemspec
    2:  fastimage (2.2.1) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/fastimage-2.2.1.gemspec
    Using jwt 2.2.2
    Fetching json 2.5.1
    2:  jwt (2.2.2) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/jwt-2.2.2.gemspec
    Using kgio 2.11.3
    2:  kgio (2.11.3) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/kgio-2.11.3.gemspec
    Using libv8 8.4.255.0 (x86_64-linux)
    2:  libv8 (8.4.255.0) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/libv8-8.4.255.0-x86_64-linux.gemspec
    Using logstash-event 1.2.02
    2:  logstash-event (1.2.02) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/logstash-event-1.2.02.gemspec
    Fetching logster 2.9.5
    Installing ffi 1.14.2 with native extensions
    Installing json 2.5.1 with native extensions
    Installing logster 2.9.5
    Building native extensions. This could take a while...
    3:  racc (1.5.2) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/racc-1.5.2.gemspec
    2:  logster (2.9.5) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/logster-2.9.5.gemspec
    Using lru_redux 1.1.0
    3:  lru_redux (1.1.0) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/lru_redux-1.1.0.gemspec
    Using lz4-ruby 0.3.3
    3:  lz4-ruby (0.3.3) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/lz4-ruby-0.3.3.gemspec
    Using maxminddb 0.1.22
    3:  maxminddb (0.1.22) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/maxminddb-0.1.22.gemspec
    Using memory_profiler 1.0.0
    3:  memory_profiler (1.0.0) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/memory_profiler-1.0.0.gemspec
    Using redis 4.2.5
    3:  redis (4.2.5) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/redis-4.2.5.gemspec
    Using multi_json 1.15.0
    2:  multi_json (1.15.0) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/multi_json-1.15.0.gemspec
    Using multi_xml 0.6.0
    2:  multi_xml (0.6.0) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/multi_xml-0.6.0.gemspec
    Using mustache 1.1.1
    2:  mustache (1.1.1) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/mustache-1.1.1.gemspec
    Using nio4r 2.5.4
    Fetching mini_sql 1.0.1
    2:  nio4r (2.5.4) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/nio4r-2.5.4.gemspec
    Fetching oauth 0.5.5
    Installing oauth 0.5.5
    Installing mini_sql 1.0.1
    3:  mini_sql (1.0.1) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/mini_sql-1.0.1.gemspec
    2:  oauth (0.5.5) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/oauth-0.5.5.gemspec
    Using optimist 3.0.1
    2:  optimist (3.0.1) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/optimist-3.0.1.gemspec
    Using pg 1.2.3
    Fetching oj 3.11.1
    2:  pg (1.2.3) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/pg-1.2.3.gemspec
    Using r2 0.2.7
    2:  r2 (0.2.7) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/r2-0.2.7.gemspec
    Using raindrops 0.19.1
    2:  raindrops (0.19.1) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/raindrops-0.19.1.gemspec
    Using rchardet 1.8.0
    2:  rchardet (1.8.0) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/rchardet-1.8.0.gemspec
    Using rinku 2.0.6
    2:  rinku (2.0.6) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/rinku-2.0.6.gemspec
    Using rotp 6.2.0
    2:  rotp (6.2.0) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/rotp-6.2.0.gemspec
    Fetching rqrcode_core 0.2.0
    Installing rqrcode_core 0.2.0
    Installing oj 3.11.1 with native extensions
    2:  rqrcode_core (0.2.0) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/rqrcode_core-0.2.0.gemspec
    Using rtlit 0.0.5
    2:  rtlit (0.0.5) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/rtlit-0.0.5.gemspec
    Using rubyzip 2.3.0
    2:  rubyzip (2.3.0) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/rubyzip-2.3.0.gemspec
    Using tilt 2.0.10
    2:  tilt (2.0.10) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/tilt-2.0.10.gemspec
    Using sshkey 2.0.0
    2:  sshkey (2.0.0) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/sshkey-2.0.0.gemspec
    Using stackprof 0.2.16
    2:  stackprof (0.2.16) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/stackprof-0.2.16.gemspec
    Using unf_ext 0.0.7.7
    2:  unf_ext (0.0.7.7) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/unf_ext-0.0.7.7.gemspec
    Using xorcist 1.1.2
    2:  xorcist (1.1.2) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/xorcist-1.1.2.gemspec
    Using tzinfo 1.2.9
    2:  tzinfo (1.2.9) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/tzinfo-1.2.9.gemspec
    Using rack-test 1.1.0
    2:  rack-test (1.1.0) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/rack-test-1.1.0.gemspec
    Using request_store 1.5.0
    2:  request_store (1.5.0) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/request_store-1.5.0.gemspec
    Using message_bus 3.3.4
    2:  message_bus (3.3.4) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/message_bus-3.3.4.gemspec
    Fetching rack-mini-profiler 2.3.0
    Installing rack-mini-profiler 2.3.0
    Building native extensions. This could take a while...
    Building native extensions. This could take a while...
    2:  rack-mini-profiler (2.3.0) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/rack-mini-profiler-2.3.0.gemspec
    Using rack-protection 2.1.0
    2:  rack-protection (2.1.0) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/rack-protection-2.1.0.gemspec
    Using mail 2.7.1
    2:  mail (2.7.1) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/mail-2.7.1.gemspec
    Using addressable 2.7.0
    2:  addressable (2.7.0) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/addressable-2.7.0.gemspec
    Using aws-sigv4 1.2.2
    2:  aws-sigv4 (1.2.2) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/aws-sigv4-1.2.2.gemspec
    Using ember-data-source 3.0.2
    2:  ember-data-source (3.0.2) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/ember-data-source-3.0.2.gemspec
    Using barber 0.12.2
    2:  barber (0.12.2) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/barber-0.12.2.gemspec
    Using uglifier 4.2.0
    2:  uglifier (4.2.0) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/uglifier-4.2.0.gemspec
    Using bootsnap 1.5.1
    2:  bootsnap (1.5.1) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/bootsnap-1.5.1.gemspec
    Using cose 1.2.0
    2:  cose (1.2.0) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/cose-1.2.0.gemspec
    Using pry 0.13.1
    2:  pry (0.13.1) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/pry-0.13.1.gemspec
    Fetching i18n 1.8.7
    Installing i18n 1.8.7

    HEADS UP! i18n 1.1 changed fallbacks to exclude default locale.
    But that may break your application.

    If you are upgrading your Rails application from an older version of Rails:

    Please check your Rails app for 'config.i18n.fallbacks = true'.
    If you're using I18n (>= 1.1.0) and Rails (< 5.2.2), this should be
    'config.i18n.fallbacks = [I18n.default_locale]'.
    If not, fallbacks will be broken in your app by I18n 1.1.x.

    If you are starting a NEW Rails application, you can ignore this notice.

    For more info see:
    https://github.com/svenfuchs/i18n/releases/tag/v1.1.0

    2:  i18n (1.8.7) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/i18n-1.8.7.gemspec
    Using sprockets 3.7.2
    2:  sprockets (3.7.2) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/sprockets-3.7.2.gemspec
    Using discourse_image_optim 0.26.2
    2:  discourse_image_optim (0.26.2) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/discourse_image_optim-0.26.2.gemspec
    Fetching faraday 1.3.0
    Installing faraday 1.3.0
    2:  faraday (1.3.0) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/faraday-1.3.0.gemspec
    Using omniauth 1.9.1
    2:  omniauth (1.9.1) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/omniauth-1.9.1.gemspec
    Using webpush 1.1.0
    2:  webpush (1.1.0) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/webpush-1.1.0.gemspec
    Using mini_racer 0.3.1
    2:  mini_racer (0.3.1) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/mini_racer-0.3.1.gemspec
    Using logstash-logger 0.26.1
    2:  logstash-logger (0.26.1) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/logstash-logger-0.26.1.gemspec
    Fetching nokogiri 1.11.1 (x86_64-linux)
    Installing nokogiri 1.11.1 (x86_64-linux)
    2:  nokogiri (1.11.1) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/nokogiri-1.11.1-x86_64-linux.gemspec
    Fetching sidekiq 6.1.3
    Installing sidekiq 6.1.3
    2:  sidekiq (6.1.3) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/sidekiq-6.1.3.gemspec
    0:  json (2.5.1) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/json-2.5.1.gemspec
    Using redis-namespace 1.8.0
    2:  redis-namespace (1.8.0) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/redis-namespace-1.8.0.gemspec
    Using puma 5.1.1
    2:  puma (5.1.1) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/puma-5.1.1.gemspec
    Fetching unicorn 5.8.0
    Fetching rqrcode 1.2.0
    Installing rqrcode 1.2.0
    Installing unicorn 5.8.0 with native extensions
    0:  rqrcode (1.2.0) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/rqrcode-1.2.0.gemspec
    Using unf 0.1.4
    0:  unf (0.1.4) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/unf-0.1.4.gemspec
    Using aws-sdk-core 3.109.2
    0:  aws-sdk-core (3.109.2) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/aws-sdk-core-3.109.2.gemspec
    Fetching css_parser 1.8.0
    Installing css_parser 1.8.0
    Building native extensions. This could take a while...
    0:  css_parser (1.8.0) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/css_parser-1.8.0.gemspec
    Using pry-byebug 3.9.0
    0:  pry-byebug (3.9.0) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/pry-byebug-3.9.0.gemspec
    Using pry-rails 0.3.9
    0:  pry-rails (0.3.9) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/pry-rails-0.3.9.gemspec
    Using activesupport 6.0.3.3
    0:  activesupport (6.0.3.3) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/activesupport-6.0.3.3.gemspec
    Using ember-handlebars-template 0.8.0
    0:  ember-handlebars-template (0.8.0) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/ember-handlebars-template-0.8.0.gemspec
    Using oauth2 1.4.4
    0:  oauth2 (1.4.4) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/oauth2-1.4.4.gemspec
    Using omniauth-oauth 1.1.0
    0:  omniauth-oauth (1.1.0) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/omniauth-oauth-1.1.0.gemspec
    Fetching loofah 2.9.0
    Installing loofah 2.9.0
    0:  loofah (2.9.0) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/loofah-2.9.0.gemspec
    Using nokogumbo 2.0.4
    0:  nokogumbo (2.0.4) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/nokogumbo-2.0.4.gemspec
    Using ruby-readability 0.7.0
    0:  ruby-readability (0.7.0) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/ruby-readability-0.7.0.gemspec
    Using mini_scheduler 0.13.0
    0:  mini_scheduler (0.13.0) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/mini_scheduler-0.13.0.gemspec
    Using aws-sdk-kms 1.39.0
    0:  aws-sdk-kms (1.39.0) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/aws-sdk-kms-1.39.0.gemspec
    Using aws-sdk-sns 1.35.0
    0:  aws-sdk-sns (1.35.0) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/aws-sdk-sns-1.35.0.gemspec
    Using rails-dom-testing 2.0.3
    0:  rails-dom-testing (2.0.3) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/rails-dom-testing-2.0.3.gemspec
    Using globalid 0.4.2
    0:  globalid (0.4.2) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/globalid-0.4.2.gemspec
    Using activemodel 6.0.3.3
    0:  activemodel (6.0.3.3) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/activemodel-6.0.3.3.gemspec
    Fetching omniauth-oauth2 1.7.1
    Installing omniauth-oauth2 1.7.1
    0:  omniauth-oauth2 (1.7.1) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/omniauth-oauth2-1.7.1.gemspec
    Using omniauth-twitter 1.4.0
    0:  omniauth-twitter (1.4.0) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/omniauth-twitter-1.4.0.gemspec
    Using rails-html-sanitizer 1.3.0
    0:  rails-html-sanitizer (1.3.0) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/rails-html-sanitizer-1.3.0.gemspec
    Using activejob 6.0.3.3
    0:  activejob (6.0.3.3) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/activejob-6.0.3.3.gemspec
    Using active_model_serializers 0.8.4
    0:  active_model_serializers (0.8.4) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/active_model_serializers-0.8.4.gemspec
    Using activerecord 6.0.3.3
    0:  activerecord (6.0.3.3) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/activerecord-6.0.3.3.gemspec
    Using aws-sdk-s3 1.83.2
    0:  aws-sdk-s3 (1.83.2) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/aws-sdk-s3-1.83.2.gemspec
    Fetching sanitize 5.2.3
    Installing sanitize 5.2.3
    0:  sanitize (5.2.3) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/sanitize-5.2.3.gemspec
    Using actionview 6.0.3.3
    0:  actionview (6.0.3.3) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/actionview-6.0.3.3.gemspec
    Using omniauth-facebook 8.0.0
    0:  omniauth-facebook (8.0.0) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/omniauth-facebook-8.0.0.gemspec
    Using omniauth-github 1.4.0
    0:  omniauth-github (1.4.0) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/omniauth-github-1.4.0.gemspec
    Using omniauth-google-oauth2 0.8.1
    0:  omniauth-google-oauth2 (0.8.1) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/omniauth-google-oauth2-0.8.1.gemspec
    Using seed-fu 2.3.9
    0:  seed-fu (2.3.9) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/seed-fu-2.3.9.gemspec
    Fetching onebox 2.2.2
    Installing onebox 2.2.2
    0:  onebox (2.2.2) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/onebox-2.2.2.gemspec
    Using actionpack 6.0.3.3
    0:  actionpack (6.0.3.3) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/actionpack-6.0.3.3.gemspec
    Using actionview_precompiler 0.2.3
    0:  actionview_precompiler (0.2.3) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/actionview_precompiler-0.2.3.gemspec
    Using actionmailer 6.0.3.3
    0:  actionmailer (6.0.3.3) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/actionmailer-6.0.3.3.gemspec
    Using railties 6.0.3.3
    0:  railties (6.0.3.3) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/railties-6.0.3.3.gemspec
    Using rails_failover 0.6.5
    0:  rails_failover (0.6.5) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/rails_failover-0.6.5.gemspec
    Using rails_multisite 2.5.0
    0:  rails_multisite (2.5.0) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/rails_multisite-2.5.0.gemspec
    Using sprockets-rails 3.2.2
    0:  sprockets-rails (3.2.2) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/sprockets-rails-3.2.2.gemspec
    Using jquery-rails 4.4.0
    0:  jquery-rails (4.4.0) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/jquery-rails-4.4.0.gemspec
    Using lograge 0.11.2
    0:  lograge (0.11.2) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/lograge-0.11.2.gemspec
    Using discourse-ember-rails 0.18.6
    0:  discourse-ember-rails (0.18.6) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/discourse-ember-rails-0.18.6.gemspec
    2:  unicorn (5.8.0) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/unicorn-5.8.0.gemspec
    3:  oj (3.11.1) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/oj-3.11.1.gemspec
    1:  ffi (1.14.2) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/ffi-1.14.2.gemspec
    Using rbtrace 0.4.14
    Using sassc 2.0.1
    2:  rbtrace (0.4.14) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/rbtrace-0.4.14.gemspec
    3:  sassc (2.0.1) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/sassc-2.0.1.gemspec
    Using sassc-rails 2.1.2
    Fetching mini_suffix 0.3.2
    1:  sassc-rails (2.1.2) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/sassc-rails-2.1.2.gemspec
    Installing mini_suffix 0.3.2
    0:  mini_suffix (0.3.2) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/mini_suffix-0.3.2.gemspec
    Bundle complete! 123 Gemfile dependencies, 161 gems now installed.
    Gems in the groups test and development were not installed.
    Bundled gems are installed into `./vendor/bundle`
    Post-install message from i18n:

    HEADS UP! i18n 1.1 changed fallbacks to exclude default locale.
    But that may break your application.

    If you are upgrading your Rails application from an older version of Rails:

    Please check your Rails app for 'config.i18n.fallbacks = true'.
    If you're using I18n (>= 1.1.0) and Rails (< 5.2.2), this should be
    'config.i18n.fallbacks = [I18n.default_locale]'.
    If not, fallbacks will be broken in your app by I18n 1.1.x.

    If you are starting a NEW Rails application, you can ignore this notice.

    For more info see:
    https://github.com/svenfuchs/i18n/releases/tag/v1.1.0


    I, [2021-01-27T02:24:39.339282 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake plugin:pull_compatible_all'
    I, [2021-01-27T02:24:43.515304 #1]  INFO -- : discourse-solved is already at latest compatible version
    docker_manager is already at latest compatible version
    discourse-feature-voting is already at latest compatible version

    I, [2021-01-27T02:24:43.515578 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate'
    rake aborted!
    StandardError: An error has occurred, all later migrations canceled:

    PG::SyntaxError: ERROR:  syntax error at or near "NOT"
    LINE 2: ADD COLUMN IF NOT EXISTS image_upload_id bigint
                          ^
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rack-mini-profiler-2.3.0/lib/patches/db/pg.rb:110:in `exec'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rack-mini-profiler-2.3.0/lib/patches/db/pg.rb:110:in `async_exec'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/connection_adapters/postgresql/database_statements.rb:92:in `block (2 levels) in execute'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.3/lib/active_support/dependencies/interlock.rb:48:in `block in permit_concurrent_loads'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.3/lib/active_support/concurrency/share_lock.rb:187:in `yield_shares'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.3/lib/active_support/dependencies/interlock.rb:47:in `permit_concurrent_loads'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/connection_adapters/postgresql/database_statements.rb:91:in `block in execute'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/connection_adapters/abstract_adapter.rb:722:in `block (2 levels) in log'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.3/lib/active_support/concurrency/load_interlock_aware_monitor.rb:26:in `block (2 levels) in synchronize'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.3/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `handle_interrupt'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.3/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `block in synchronize'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.3/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `handle_interrupt'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.3/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `synchronize'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/connection_adapters/abstract_adapter.rb:721:in `block in log'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.3/lib/active_support/notifications/instrumenter.rb:24:in `instrument'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/connection_adapters/abstract_adapter.rb:712:in `log'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/connection_adapters/postgresql/database_statements.rb:90:in `execute'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/migration.rb:890:in `block in method_missing'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/migration.rb:858:in `block in say_with_time'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/migration.rb:858:in `say_with_time'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/migration.rb:879:in `method_missing'
    /var/www/discourse/db/migrate/20200429095034_add_topic_thumbnail_information.rb:9:in `up'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/migration.rb:831:in `exec_migration'
    /var/www/discourse/lib/freedom_patches/schema_migration_details.rb:9:in `block in exec_migration'
    /var/www/discourse/lib/freedom_patches/schema_migration_details.rb:8:in `exec_migration'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/migration.rb:812:in `block (2 levels) in migrate'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/migration.rb:811:in `block in migrate'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:471:in `with_connection'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/migration.rb:810:in `migrate'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/migration.rb:1002:in `migrate'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/migration.rb:1310:in `block in execute_migration_in_transaction'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/migration.rb:1363:in `ddl_transaction'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/migration.rb:1309:in `execute_migration_in_transaction'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/migration.rb:1281:in `block in migrate_without_lock'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/migration.rb:1280:in `each'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/migration.rb:1280:in `migrate_without_lock'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/migration.rb:1229:in `block in migrate'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/migration.rb:1382:in `with_advisory_lock'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/migration.rb:1229:in `migrate'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/migration.rb:1061:in `up'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/migration.rb:1036:in `migrate'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/tasks/database_tasks.rb:238:in `migrate'
    /var/www/discourse/lib/tasks/db.rake:215:in `block in <main>'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/exe/rake:27:in `<top (required)>'
    /usr/local/bin/bundle:23:in `load'
    /usr/local/bin/bundle:23:in `<main>'

    Caused by:
    ActiveRecord::StatementInvalid: PG::SyntaxError: ERROR:  syntax error at or near "NOT"
    LINE 2: ADD COLUMN IF NOT EXISTS image_upload_id bigint
                          ^
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rack-mini-profiler-2.3.0/lib/patches/db/pg.rb:110:in `exec'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rack-mini-profiler-2.3.0/lib/patches/db/pg.rb:110:in `async_exec'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/connection_adapters/postgresql/database_statements.rb:92:in `block (2 levels) in execute'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.3/lib/active_support/dependencies/interlock.rb:48:in `block in permit_concurrent_loads'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.3/lib/active_support/concurrency/share_lock.rb:187:in `yield_shares'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.3/lib/active_support/dependencies/interlock.rb:47:in `permit_concurrent_loads'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/connection_adapters/postgresql/database_statements.rb:91:in `block in execute'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/connection_adapters/abstract_adapter.rb:722:in `block (2 levels) in log'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.3/lib/active_support/concurrency/load_interlock_aware_monitor.rb:26:in `block (2 levels) in synchronize'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.3/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `handle_interrupt'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.3/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `block in synchronize'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.3/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `handle_interrupt'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.3/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `synchronize'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/connection_adapters/abstract_adapter.rb:721:in `block in log'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.3/lib/active_support/notifications/instrumenter.rb:24:in `instrument'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/connection_adapters/abstract_adapter.rb:712:in `log'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/connection_adapters/postgresql/database_statements.rb:90:in `execute'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/migration.rb:890:in `block in method_missing'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/migration.rb:858:in `block in say_with_time'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/migration.rb:858:in `say_with_time'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/migration.rb:879:in `method_missing'
    /var/www/discourse/db/migrate/20200429095034_add_topic_thumbnail_information.rb:9:in `up'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/migration.rb:831:in `exec_migration'
    /var/www/discourse/lib/freedom_patches/schema_migration_details.rb:9:in `block in exec_migration'
    /var/www/discourse/lib/freedom_patches/schema_migration_details.rb:8:in `exec_migration'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/migration.rb:812:in `block (2 levels) in migrate'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/migration.rb:811:in `block in migrate'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:471:in `with_connection'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/migration.rb:810:in `migrate'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/migration.rb:1002:in `migrate'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/migration.rb:1310:in `block in execute_migration_in_transaction'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/migration.rb:1363:in `ddl_transaction'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/migration.rb:1309:in `execute_migration_in_transaction'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/migration.rb:1281:in `block in migrate_without_lock'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/migration.rb:1280:in `each'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/migration.rb:1280:in `migrate_without_lock'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/migration.rb:1229:in `block in migrate'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/migration.rb:1382:in `with_advisory_lock'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/migration.rb:1229:in `migrate'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/migration.rb:1061:in `up'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/migration.rb:1036:in `migrate'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/tasks/database_tasks.rb:238:in `migrate'
    /var/www/discourse/lib/tasks/db.rake:215:in `block in <main>'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/exe/rake:27:in `<top (required)>'
    /usr/local/bin/bundle:23:in `load'
    /usr/local/bin/bundle:23:in `<main>'

    Caused by:
    PG::SyntaxError: ERROR:  syntax error at or near "NOT"
    LINE 2: ADD COLUMN IF NOT EXISTS image_upload_id bigint
                          ^
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rack-mini-profiler-2.3.0/lib/patches/db/pg.rb:110:in `exec'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rack-mini-profiler-2.3.0/lib/patches/db/pg.rb:110:in `async_exec'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/connection_adapters/postgresql/database_statements.rb:92:in `block (2 levels) in execute'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.3/lib/active_support/dependencies/interlock.rb:48:in `block in permit_concurrent_loads'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.3/lib/active_support/concurrency/share_lock.rb:187:in `yield_shares'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.3/lib/active_support/dependencies/interlock.rb:47:in `permit_concurrent_loads'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/connection_adapters/postgresql/database_statements.rb:91:in `block in execute'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/connection_adapters/abstract_adapter.rb:722:in `block (2 levels) in log'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.3/lib/active_support/concurrency/load_interlock_aware_monitor.rb:26:in `block (2 levels) in synchronize'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.3/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `handle_interrupt'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.3/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `block in synchronize'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.3/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `handle_interrupt'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.3/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `synchronize'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/connection_adapters/abstract_adapter.rb:721:in `block in log'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.3/lib/active_support/notifications/instrumenter.rb:24:in `instrument'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/connection_adapters/abstract_adapter.rb:712:in `log'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/connection_adapters/postgresql/database_statements.rb:90:in `execute'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/migration.rb:890:in `block in method_missing'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/migration.rb:858:in `block in say_with_time'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/migration.rb:858:in `say_with_time'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/migration.rb:879:in `method_missing'
    /var/www/discourse/db/migrate/20200429095034_add_topic_thumbnail_information.rb:9:in `up'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/migration.rb:831:in `exec_migration'
    /var/www/discourse/lib/freedom_patches/schema_migration_details.rb:9:in `block in exec_migration'
    /var/www/discourse/lib/freedom_patches/schema_migration_details.rb:8:in `exec_migration'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/migration.rb:812:in `block (2 levels) in migrate'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/migration.rb:811:in `block in migrate'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:471:in `with_connection'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/migration.rb:810:in `migrate'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/migration.rb:1002:in `migrate'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/migration.rb:1310:in `block in execute_migration_in_transaction'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/migration.rb:1363:in `ddl_transaction'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/migration.rb:1309:in `execute_migration_in_transaction'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/migration.rb:1281:in `block in migrate_without_lock'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/migration.rb:1280:in `each'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/migration.rb:1280:in `migrate_without_lock'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/migration.rb:1229:in `block in migrate'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/migration.rb:1382:in `with_advisory_lock'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/migration.rb:1229:in `migrate'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/migration.rb:1061:in `up'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/migration.rb:1036:in `migrate'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/tasks/database_tasks.rb:238:in `migrate'
    /var/www/discourse/lib/tasks/db.rake:215:in `block in <main>'
    /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/exe/rake:27:in `<top (required)>'
    /usr/local/bin/bundle:23:in `load'
    /usr/local/bin/bundle:23:in `<main>'
    Tasks: TOP => db:migrate
    (See full trace by running task with --trace)
    I, [2021-01-27T02:24:48.903485 #1]  INFO -- : == 20200429095034 AddTopicThumbnailInformation: migrating =====================
    -- execute("ALTER TABLE posts\nADD COLUMN IF NOT EXISTS image_upload_id bigint\n")

    I, [2021-01-27T02:24:48.903736 #1]  INFO -- : Terminating async processes
    I, [2021-01-27T02:24:48.903804 #1]  INFO -- : Sending INT to HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/13/bin/postmaster -D /etc/postgresql/13/main pid: 51
    I, [2021-01-27T02:24:48.903846 #1]  INFO -- : Sending TERM to exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 168
    2021-01-27 02:24:48.903 UTC [51] LOG:  received fast shutdown request
    168:signal-handler (1611714288) Received SIGTERM scheduling shutdown...
    168:M 27 Jan 2021 02:24:48.954 # User requested shutdown...
    168:M 27 Jan 2021 02:24:48.954 * Saving the final RDB snapshot before exiting.
    2021-01-27 02:24:48.962 UTC [51] LOG:  aborting any active transactions
    2021-01-27 02:24:48.964 UTC [51] LOG:  background worker "logical replication launcher" (PID 60) exited with exit code 1
    168:M 27 Jan 2021 02:24:48.964 * DB saved on disk
    168:M 27 Jan 2021 02:24:48.964 # Redis is now ready to exit, bye bye...
    2021-01-27 02:24:48.964 UTC [55] LOG:  shutting down
    2021-01-27 02:24:48.993 UTC [51] LOG:  database system is shut down


    FAILED
    --------------------
    Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate' failed with return #<Process::Status: pid 3907 exit 1>
    Location of failure: /pups/lib/pups/exec_command.rb:112:in `spawn'
    exec failed with the params {"cd"=>"$home", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migrate'"]}
    9ba41a79ae37ba9321d60a2acd46a9b36b4990af29b46ad2c2ba011938a2972f

Вы запускаете внешний экземпляр PostgreSQL на том же хосте? Какая у него версия?

Да, это Amazon RDS для PostgreSQL, и, скорее всего, на нём запущена версия PostgreSQL 9.5, так как с тех пор мы не проводили никаких обновлений.

Просто интересно, есть ли способ пока пропустить обновление и, возможно, использовать существующую версию.

О, если вы используете RDS, то обновление — это всего одна команда aws cli, верно?

Ну, по одной для каждого шага пути: 9.5 → 9.6 → 10 → 11 → 12 :sweat_smile:

Мы прекратили поддержку PG 9.5 в 2018 году. Тот факт, что она работала до сих пор, объясняется тем, что вы находились на старой версии, где мы не использовали новые функции SQL.

Также, если вашей команде не хочется заниматься частью, связанной с хостингом, вы можете рассмотреть возможность перехода на наш управляемый хостинг. Вы отправляете нам резервную копию, а мы занимаемся её обновлением до последней версии.

Отлично, я хотел бы узнать больше о том, как стать клиентом хостинга и какова соответствующая стоимость. Пожалуйста, предоставьте более подробную информацию. И большое спасибо за всю помощь до сих пор.

Хотел просто сообщить, что наша проблема решилась после обновления RDS до последней версии. Большое спасибо за всю помощь и поддержку. Спасибо.

Отлично, @Bharat_singh! Вы также получите значительные преимущества в производительности благодаря более новой версии PostgreSQL.