Docker の古いバージョンのためアップグレードできません

アップグレード中に、cd /var/discourse; git pull; ./launcher rebuild appを実行しました。

「Upgrade Complete」と「UPGRADE OF POSTGRES COMPLETE」と表示されます。後者は「再度ビルドする」よう指示していますが、実際には何も変わらないようです。

アップグレードは完了したにもかかわらず、アプリを起動できません。./launcher start appを実行すると、以下のエラーが表示されます。

Unable to find image 'local_discourse/app:latest' locally
/usr/bin/docker: Error response from daemon: pull access denied for local_discourse/app, repository does not exist or may require 'docker login'.
See '/usr/bin/docker run --help'.

アプリを再起動できず、どのように進めればよいかわかりません。

./discourse-doctorも役に立ちません(アプリが実行されていないことを検知し、再ビルドと再起動を試みますが、同じエラーで終わります)。

新規ユーザーのためファイルの添付ができず、デバッグログから関連すると思われるスニペットを以下に示します。

Failed to rebuild app.

Checking your domain name . . .

Connection to community.gingkoapp.com succeeded.
You should probably remove any non-standard plugins and rebuild.
Attempting to restart existing container. . . 

+ /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
Unable to find image 'local_discourse/app:latest' locally
/usr/bin/docker: Error response from daemon: pull access denied for local_discourse/app, repository does not exist or may require 'docker login'.
See '/usr/bin/docker run --help'.
Failed to restart the container.
  1. Docker のバージョンは何ですか?
  2. この FAQ で提案されている解決策を試しましたか?

ありがとうございます!

Docker バージョン 17.12.0-ce

私はストレージ容量が限られた環境にいます(常にイメージのクリーンアップを試みるよう求められています)ので、これがこの失敗の妥当な理由であると思われます。

記載された手順を試して、結果をお知らせします。

あなたの discourse Docker バージョンが古すぎます。
続行する前に、それを更新することをお勧めします。

Webインターフェース(またはAPIへのcurl)が使えない状態で、それがダウンしている以上、それをどう行うか確信が持てません。しかし、調べてみます。まずはドロプレットのディスク容量をアップグレードして、それで解決するか試してみます。

(もしかして、私のDockerのバージョンが古いという意味でしょうか?)

ああ、すみません。
Docker が古すぎるという意味でした。まずそれをアップグレードしてみてください。タイプミスと混乱を起こして本当に申し訳ありません。

ご心配なく、dockerのバージョンを尋ねられたので、それがご意図だとわかりました。
私も14.04を使用しているので、まずは16.04にアップグレードします。

ご助言をいただき、ありがとうございました。進展があれば改めて報告します。

まあまあ!

14.04 > 16.04 > 18.04 と、長い一日が待っています。

ただし、16.04 も2021年にサポート終了(EOL)となるため、少なくとも18.04 へアップグレードすることをお勧めします。

立ち止まらないために必死に働く…これが私の人生の物語!
ソフトウェアの進化が私には速すぎる!:stuck_out_tongue_closed_eyes:

「いいね!」 2

このソフトウェアのアップグレードという新たな冒険が、皆様にとって素晴らしいものとなりますようお祈りしております。:confetti_ball:

それが VPS の場合、現在のサーバーをアップグレードする必要はありません。20.04 で動作する新しいサーバーを立ち上げ、サイトをその新しいサーバーに移行する方が、はるかに速く簡単です。

ただし、コンテナは複数の理由により破損しており、起動していません。

最後の自動バックアップは、新しいサーバーへ移動させるために共有フォルダ内に保存されます。

「いいね!」 1

Discourseで現在サポートされている最も古いDockerバージョンはどこで確認できますか?

こちら

「いいね!」 1

はい、現在その作業を行っています。現在のアップグレードよりもはるかに速くなるはずです。バックアップファイル(古いサーバーでまだアクセス可能)から復元できることを願っています。

「いいね!」 2

ありがとうございます..!

つまり、これは現在の Discourse で十分にサポートされているようです。@itsbhanusharma さん、なぜ古いとお考えなのでしょう?

「いいね!」 1

誰がサポートされていると言ったのですか?
数年前の Docker バージョンは、開発者自身によってさえサポートされていません。それなのに、Discourse がサポートすると期待するのはどうしてですか?

私は単にソースコードを見ています…

「いいね!」 1

すべて正常に復旧しました。新しいDigital Oceanのドロプレットを起動し、バックアップから復元しました。最新のバックアップは破損していたようですが、幸いにも投稿が1〜2件失われただけで、その前のバックアップから正常に復元できました。

みなさんのご協力、ありがとうございました!

「いいね!」 3