Upgrade para PostgreSQL 18 deixou o Discourse usando binários do PostgreSQL 15

Estou executando o Discourse em um contêiner Docker standalone em /var/discourse.

Tentei atualizar o banco de dados PostgreSQL embutido da versão 15 para a 18. A atualização pareceu ter sido concluída, e o diretório de dados ativo agora relata:

/shared/postgres_data/PG_VERSION
18

No entanto, o contêiner Discourse reconstruído ainda contém apenas os binários do PostgreSQL 15:

/usr/lib/postgresql/15/bin/postgres
postgres (PostgreSQL) 15.18

O serviço PostgreSQL está configurado para executar:

/usr/lib/postgresql/15/bin/postmaster -D /etc/postgresql/15/main

enquanto o diretório de dados real do Discourse está montado em:

/shared/postgres_data

Consequentemente, o PostgreSQL falha com:

FATAL: database files are incompatible with server

DETAIL: The data directory was initialized by PostgreSQL version 18,
which is not compatible with this version 15.18
(Debian 15.18-1.pgdg12+1).

Entendo que as imagens Docker recentes do Discourse deveriam incluir os binários do PostgreSQL 18. Alterei o app.yml para usar o modelo do PostgreSQL 18 e reconstruí o aplicativo, mas o contêiner resultante ainda possui os binários do PostgreSQL 15 e o script de serviço ainda aponta para /etc/postgresql/15/main.

A parte relevante da minha configuração atual de serviço é:

HOME=/var/lib/postgresql USER=postgres exec thpoff \
chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert \
/usr/lib/postgresql/15/bin/postmaster -D /etc/postgresql/15/main

Minhas perguntas são:

  1. Qual é a maneira correta de reconstruir ou atualizar o contêiner Discourse para que ele realmente contenha os binários do PostgreSQL 18?

  2. Existe algum modelo ou tag de imagem específico que deva ser usado no app.yml?

  3. Uma vez que o PostgreSQL 18 esteja disponível, qual é o procedimento suportado para iniciá-lo contra o diretório /shared/postgres_data existente?

Não excluí nem reinicializei o diretório de dados do PostgreSQL 18. Prefiro recuperar o cluster atualizado em vez de restaurar os dados antigos do PostgreSQL 15.

Um post foi mesclado em um tópico existente: Atualização do PostgreSQL 18 para auto-hospedadores