Проблема: версия Docker не поддерживается

Привет,

Я изменил настройки SMTP и пытаюсь пересобрать приложение.

cd /var/discourse
./launcher rebuild app

Вывод: ОШИБКА: Версия Docker 1.9.1 не поддерживается. Пожалуйста, обновитесь как минимум до версии 17.03.1 или, что рекомендуется, до 17.06.2.

Что мне делать? Есть какие-нибудь предложения?

Вы пробовали обновить Docker как минимум до версии 17.03.1? Если вы не знаете, как это сделать, выполните команду uname -a и вставьте результаты здесь.

Привет, спасибо за ответ.

Вот результат:
Ekran Resmi 2020-03-15 01.13.43

Команда sudo apt-get update && sudo apt-get upgrade должна помочь. Всё действительно зависит от того, как вы изначально установили Docker.

Существует ли риск того, что после обновления что-то нарушит работу Discourse?

Всегда существует риск возникновения подобных ситуаций, но если вы хотите пересобрать приложение, вам необходимо обновить Docker.

Я рекомендую сообщить вашему сообществу о проведении технических работ, сделать резервную копию, если вы ещё этого не сделали, а затем выполнить обновление.

Я бы сказал, что ядро 3.13.0-147 уже немного устарело?

Да.

В этом случае нужно ли делать отдельное обновление ядра? Или достаточно следующей команды?

sudo apt-get update && sudo apt-get upgrade

apt-get dist-upgrade тоже? Лучше проверить документацию Ubuntu, чтобы убедиться.

Я просто пытаюсь изменить почтовый сервис и настройки SMTP в app.yml. Есть ли другой способ проверить эти настройки (app.yml) без обновления?

По соображениям безопасности настоятельно рекомендуется использовать последнюю версию программного обеспечения, но это ваше решение…

Согласно How to reload configuration after app.yml changes? - #2 by riking, если вы изменяете только настройки в секции env файла app.yml и эта переменная окружения не требуется для начальной настройки, команда ./launcher restart app должна перезагрузить настройки SMTP.

./launcher restart app тоже не работает. Ошибка: версия Docker 1.9.1 не поддерживается.

Что ещё можно сделать?

Проблема в том, что команда launcher rebuild загружает последний код с GitHub, который несовместим с вашей версией Docker. Этого можно избежать, если вы ещё не запускали rebuild, но в данной ситуации, скорее всего, единственный выход — двигаться дальше. Как указал @yanokwa, вам действительно не стоит использовать очень старые версии ОС или Discourse, так как при этом возникает множество проблем с безопасностью.

Что произошло, когда вы попытались выполнить dist-upgrade, как показано выше?

Я не использовал эту команду. Я ищу способ решить это без обновления. (Пока что. :slight_smile: )

Вы обновили Discourse, а это значит, что теперь нужно исправить Docker.

Это можно сделать с помощью dist-upgrade. Если у вас есть копии резервных копий и на сервере установлено только это приложение, то на данном этапе риск минимален. В худшем случае вам просто потребуется заново пройти 30-минутное руководство по установке и восстановить резервную копию.

Вы сами собирали этот сервер? Если да, то помните ли вы, как именно он был собран? Чем больше информации вы предоставите здесь, тем быстрее мы сможем найти для вас решение.

Я не создавал сервер. Я создал снимок и работаю с ним.

Я использовал эти команды для обновления версий Docker и ядра:

sudo apt-get dist-upgrade
sudo apt-get update && sudo apt-get upgrade

После обновления версия Docker всё ещё 1.9.1 :frowning:

Я попытался обновить версию Docker с помощью этой команды:

wget -qO- https://get.docker.com/ | sh

При запуске команды docker run -it --rm hello-world вывод следующий:

Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
1b930d010525: Pull complete 
Digest: sha256:f9dfddf63636d84ef479d645ab5885156ae030f611a56f3a7ac7f2fdd86d7e4e
Status: Downloaded newer image for hello-world:latest
docker: Error response from daemon: OCI runtime create failed: container_linux.go:348: starting container process caused "process_linux.go:301: running exec setns process for init caused \"exit status 23\"": unknown.

При запуске ./launcher rebuild app вывод следующий:

WARNING: We are about to start downloading the Discourse base image
This process may take anywhere between a few minutes to an hour, depending on your network speed

Please be patient

Unable to find image 'discourse/base:2.0.20200220-2221' locally
2.0.20200220-2221: Pulling from discourse/base
bc51dd8edc1b: Pulling fs layer
27ae5d171719: Pulling fs layer
bc51dd8edc1b: Verifying Checksum
bc51dd8edc1b: Download complete
bc51dd8edc1b: Pull complete
27ae5d171719: Verifying Checksum
27ae5d171719: Download complete
27ae5d171719: Pull complete
Digest: sha256:b3acee0b655f071e98205dbd12fa78b95a6dd4038d27f1259177f76ab2efe4f7
Status: Downloaded newer image for discourse/base:2.0.20200220-2221
/usr/bin/docker: Error response from daemon: OCI runtime create failed: container_linux.go:348: starting container process caused "process_linux.go:301: running exec setns process for init caused \"exit status 23\"": unknown.
Your Docker installation is not working correctly

See: https://meta.discourse.org/t/docker-error-on-bootstrap/13657/18?u=sam

Возможно, потребуется перезагрузка после обновления Docker.

После перезагрузки результат тот же:

/usr/bin/docker: Ошибка ответа от демона: сбой создания времени выполнения OCI: container_linux.go:348: запуск процесса контейнера вызвал "process_linux.go:301: выполнение setns процесса для init вызвало \"выход со статусом 23\"": неизвестно.
Ваша установка Docker работает некорректно

См.: https://meta.discourse.org/t/docker-error-on-bootstrap/13657/18?u=sam