Невозможно обновить из-за устаревшей версии Docker

Во время обновления я выполнил команду cd /var/discourse; git pull; ./launcher rebuild app.

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

Несмотря на то, что обновление завершено, запустить приложение не удаётся. Команда ./launcher start app выдаёт следующую ошибку:

Не удалось найти образ 'local_discourse/app:latest' локально
/usr/bin/docker: Ошибка ответа от демона: доступ к извлечению для local_discourse/app запрещён, репозиторий не существует или может потребоваться 'docker login'.
См. '/usr/bin/docker run --help'.

Приложение снова запустить не удаётся, и я не знаю, как действовать дальше.

Команда ./discourse-doctor не помогает (она лишь определяет, что приложение не запущено, пытается выполнить сборку и перезапуск, но в итоге возникает та же ошибка).

Прикрепить файл не могу, так как я новый пользователь, поэтому вот фрагмент из лога отладки, который, как я считаю, имеет отношение к делу:

Не удалось выполнить сборку приложения.

Проверка вашего доменного имени . . .

Соединение с community.gingkoapp.com успешно.
Вам, вероятно, следует удалить любые нестандартные плагины и выполнить сборку заново.
Попытка перезапуска существующего контейнера . . .

+ /usr/bin/docker run --shm-size=512m -d --restart=always -e LANG=en_US.UTF-8 -e RAILS_ENV=production -e UNICORN_WORKERS=2 -e UNICORN_SIDEKIQS=1 -e RUBY_GLOBAL_METHOD_CACHE_SIZE=131072 -e RUBY_GC_HEAP_GROWTH_MAX_SLOTS=40000 -e RUBY_GC_HEAP_INIT_SLOTS=400000 -e RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTOR=1.5 -e DISCOURSE_DB_SOCKET=/var/run/postgresql -e DISCOURSE_DB_HOST= -e DISCOURSE_DB_PORT= -e DISCOURSE_DEVELOPER_EMAILS=REDACTED  -e DISCOURSE_HOSTNAME=community.gingkoapp.com -e DISCOURSE_SMTP_ADDRESS=smtp.mailgun.org -e DISCOURSE_SMTP_USER_NAME=postmaster@community.gingkoapp.com -e DISCOURSE_SMTP_PASSWORD=REDACTED  -h community-app -e DOCKER_HOST_IP=172.17.0.1 --name app -t -p 80:80 -p 2222:22 -v /var/discourse/shared/standalone:/shared -v /var/discourse/shared/standalone/log/var-log:/var/log --mac-address 02:fc:04:ee:f5:11 local_discourse/app /sbin/boot
Не удалось найти образ 'local_discourse/app:latest' локально
/usr/bin/docker: Ошибка ответа от демона: доступ к извлечению для local_discourse/app запрещён, репозиторий не существует или может потребоваться 'docker login'.
См. '/usr/bin/docker run --help'.
Не удалось перезапустить контейнер.
  1. Какая у вас версия Docker?
  2. Пробовали ли вы решения, предложенные в этом FAQ?

Спасибо!

Версия Docker 17.12.0-ce

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

Попробую указанные шаги и отчитаюсь.

Ваша версия discourse Docker устарела.
Рекомендуем обновить её перед продолжением.

Не уверен, как это сделать без веб-интерфейса (или curl к API), учитывая, что он недоступен. Но я займусь этим. Сначала я увеличу размер диска своего droplet и посмотрю, поможет ли это.

(если только вы не имели в виду, что моя версия docker устарела?)

Ох, извините.
Я хотел сказать, что версия Docker устарела. Попробуйте сначала обновить его. Приношу извинения за опечатку и возникшую путаницу.

Не переживайте, я понял, что вы имели в виду, так как вы спросили про версию Docker. У меня тоже 14.04, поэтому сначала я обновлю её до 16.04.

Ещё раз спасибо за совет. Буду держать в курсе любых обновлений.

Ух ты!

14.04 > 16.04 > 18.04 — у вас впереди долгий день.

Имейте в виду, что поддержка 16.04 также заканчивается в 2021 году, поэтому лучше сразу перейти хотя бы на 18.04.

Упорно работаешь, чтобы просто оставаться на месте… это моя жизнь!
Программное обеспечение развивается слишком быстро для меня! :stuck_out_tongue_closed_eyes:

Желаю вам всего наилучшего в этом новом приключении по обновлению программного обеспечения. :confetti_ball:

Если это VPS, то обновлять текущий сервер не обязательно. Гораздо быстрее и проще развернуть новый сервер на 20.04 и перенести на него ваш сайт.

Но их контейнер повреждён и не запускается по нескольким причинам.

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

Где можно найти информацию о том, какая сейчас самая старая поддерживаемая версия Docker для Discourse?

Вот

Да, именно этим я сейчас и занимаюсь. Должно быть намного быстрее, чем обновление текущей системы… Дай бог, чтобы я смог восстановить данные из резервных копий (к которым у меня всё ещё есть доступ на старом сервере).

Спасибо..!

Похоже, что эта версия хорошо поддерживается в текущей версии Discourse. Почему, по вашему мнению, она слишком старая, @itsbhanusharma?

Кто сказал, что это поддерживается? Любая версия Docker старше нескольких лет даже не поддерживается её разработчиком, так что как вы ожидаете, что Discourse будет её поддерживать?

Я просто смотрю исходный код…

Всё в порядке. Я развернул новый Droplet в Digital Ocean и восстановил резервную копию. Последняя резервная копия, кажется, была повреждена, но, по крайней мере, я потерял всего один-два поста и успешно восстановил данные из предыдущей резервной копии.

Спасибо всем за помощь!