Пытаюсь обновить Docker на DigitalOcean; застрял на версии 19.03.13 😔

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

Как и многие другие здесь, я запускаю Discourse на Droplet от DigitalOcean. Однако я не могу обновиться до версии 20.10.0 (или, в идеале, до 24.0.7).

Просто надеюсь найти какое-то направление, чтобы я мог обновить Docker через командную строку. Спасибо!

Дополнительный контекст: Когда я пытаюсь применить решение Джея, получаю следующие ошибки:

E: Malformed entry 58 in list file /etc/apt/sources.list (URI parse)
E: The list of sources could not be read.

Любопытно, что эта ошибка повторяется 3 раза. (Возможно, потому что я пытался сделать это слишком много раз и установил несколько дефектных версий одного и того же? Если так, я не имею ни малейшего представления, как это исправить…)

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

Если я ввожу apt update, я всё ещё получаю ошибку malformed entry 58.

Вы можете поискать эту ошибку и найти несколько идей.

Ваша операционная система устарела. Ваш файл sources.list устарел. Вам необходимо обновить ваш сервер. Я бы рекомендовал перейти на новый.

Возможно, у вас установлена новая операционная система (но это маловероятно, так как это очень старая версия Docker, примерно 2021 года), и каким-то образом что-то повредило этот файл.

Если вы не хотите обновлять вашу операционную систему, вы не хотите обновлять Discourse.

Вот что я делаю, как на этом форуме, так и за его пределами.

Я готов это сделать, но у меня возникла проблема с ошибкой «malformed entry 58». Возможно, проблема в том, что мой сервер не работает по HTTPS, а в файле sources.list указаны только ссылки по HTTP?

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

Извините. Моя рекомендация — развернуть новый сервер, который уже работает и обновлён. Это безошибочный, быстрый и безопасный способ. См. Перенос сайта Discourse на другой VPS с помощью rsync

nano /etc/apt/sources.list и удалите эту строку. Вы или какой-то скрипт добавили туда неправильную строку.

Возможно, я всё же займусь этим, хотя это, похоже, отнимет пару дней, но мне трудно поверить, что это проще, чем просто обновить Ubuntu на этом Droplet.

С таким количеством людей, запускающих Discourse на Droplet, нет ли известного способа преодолеть это препятствие?

Это займёт меньше времени, чем попытка выполнить dist upgrade

Могу ли я использовать функцию DO «Создать из снимка»? Или это просто установит ту же надоевшую ОС на новый Droplet?

Вот последние несколько строк этого файла. В выводе сказано «Прочитано 59 строк», так что является ли строка 58 последней или той, что перед ней?

Ни одна из строк не выглядит повреждённой, поэтому я не уверен, что удалять…

Не мучайтесь :smirking_face: Я делал и то, и другое. По времени запуск нового быстрее, но вам нужно добавить SSH-ключи, чтобы rsync заработал. Это займет несколько минут, если вы никогда этого не делали, — но это легко.

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

Мне интересно, что это за backports. Закомментируйте эти последние строки и попробуйте. Поскольку вы уже сделали snapshot, вы только теряете время.

Единственный раз, когда обновление Ubuntu не сработало у меня, произошел на DO.

редактирование

Я проверил свой VPS на DO, и там тоже есть эти backports. Значит, это какие-то кастомные пакеты от DO.

Нет, нельзя. Она создаёт точную копию 1:1.

Ладно, это был НЕ конец файла, и я удалил строку, которая добавилась, пока я возился с установкой. Попробую снова пройти некоторые из этих руководств.

Обновили Ubuntu и Docker, но теперь на сайте написано: «Сайт недоступен».

Не уверен, какой должен быть следующий шаг в процессе устранения неполадок; сейчас пытаюсь посмотреть логи Docker.

Для меня это ничего не значит, но, возможно, для кого-то из вас это что-то значит:

И теперь ошибка 502.

Снова запустил пересборку лаунчера, и форумы снова в работе :smiling_face_with_sunglasses:

Это здорово! Поздравляю! Рад, что вы всё исправили!

Я пометил ваш пост «обновлённый» как решение. Это было настоящее исправление, даже несмотря на то, что вам пришлось выполнить ещё одну пересборку.