Dockerイメージ上の古いPostgres、Webとデータの2つのコンテナで

皆様、こんにちは。

Docker 上の Discourse インスタンスのアップグレードで詰まっています。コンテナの再構築、ブートストラップ、またはその他のセットアップを試みると、以下のエラーが発生します。

I, [2020-11-18T15:23:37.357104 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake plugin:pull_compatible_all'
I, [2020-11-18T15:23:40.298932 #1]  INFO -- : discourse-slack-official は既に最新互換バージョンです
docker_manager は既に最新互換バージョンです

I, [2020-11-18T15:23:40.299193 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate'
rake aborted!
StandardError: エラーが発生しました。以降のマイグレーションはすべてキャンセルされました:

PG::SyntaxError: エラー: \"NOT\" の付近で構文エラーが発生しました
LINE 2: ADD COLUMN IF NOT EXISTS image_upload_id bigint
                      ^

調査の結果、最新の Discourse には PostgreSQL 12 が必要 のようですが、公式 Docker イメージには現在それがパッケージ化されていません

リポジトリには PostgreSQL 12 でコンテナをビルドするための開発ブランチ のようですが、未処理の PR やその他何もありません。

Discourse のインストールを修正・更新するにはどうすればよいでしょうか?更新パスが正しくないため、今やフォーラムをできるだけ早く復旧させるために格闘しています!

「いいね!」 2

追記: pg12 ブランチも動作しません(異なるコンテナバージョンのダウンロードを試行しているようですが)、db:migrate で同じエラーが発生したままです…

それは違います。Discourse のベースイメージには、PostgreSQL 12 の更新以来、数ヶ月も前から PostgreSQL が同梱されています。

app.yml を共有していただけますか?もしかすると、古いベースイメージを無理やり指定して、それを忘れている可能性があります。

「いいね!」 2

discourse_docker チェックアウトのバージョンはいつのものですか?launcher スクリプトは自動的に更新されるように設計されていますが、念のため手動で git pull を実行してみるのも良いでしょう。

最新のベースイメージは こちら です:

image="discourse/base:2.0.20201004-2310"

以下のコマンドを実行した結果は何になりますか?

docker images | grep discourse/base

また、そのプラグインは3年前に非推奨となりました :scream:

「いいね!」 2

奇妙ですね、私は最新のコミットにいます:

$ git branch -v
* master 4a4b0f8 DOCS: readme の構文エラーを修正

また、最新のイメージを持っているようです:

$ docker images
REPOSITORY             TAG                 IMAGE ID            CREATED             SIZE
discourse/base         2.0.20201004-2310   b64c37d7ab06        6 週間前            2.4GB
local_discourse/data   latest              253fd4d68068        3 年前              1.7GB

古い Docker イメージを削除し、web アプリを複数回再構築しようとしました。

ああ、まず data コンテナを再構築する必要があるのでしょうか?まだ手を加えていませんが。

そのプラグインは 3 年前に非推奨になりました :scream:

:see_no_evil: それも私の更新リストの次の項目ですが、現在のアップデートで立ち往生しています!

あ、高度なデータセットアップをお使いなんですね?

すべてのデータソフトウェアを最新にするには、ウェブサービスを停止してデータを再構築する必要があります。そのためのセクションは以下のページにあります:PostgreSQL 12 update

「いいね!」 8

ご支援ありがとうございます。data コンテナを再構築中です…

これで問題なさそうですね。皆様、ありがとうございました!

Discourse のインストールを引き継ぎ、初めてアップグレードを行った際に予想されるようなトラブルでした :sweat_smile:

「いいね!」 4

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.