旧的 Postgres 在 Docker 镜像中,带有两个容器:web 和数据

大家好,

我在尝试升级 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 is already at latest compatible version
docker_manager is already at latest compatible version

I, [2020-11-18T15:23:40.299193 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate'
rake aborted!
StandardError: An error has occurred, all later migrations canceled:

PG::SyntaxError: ERROR:  syntax error at or near "NOT"
LINE 2: ADD COLUMN IF NOT EXISTS image_upload_id bigint
                      ^

经过调查,似乎 最新的 Discourse 需要 PostgreSQL 12,但 目前的官方 Docker 镜像中尚未包含该版本

看起来仓库中有一个用于 使用 PostgreSQL 12 构建容器 的开发分支,但目前没有未合并的拉取请求或其他相关进展……

我该如何修复或更新我的 Discourse 安装?升级路径似乎不正确,现在我正竭尽全力尽快恢复论坛运行!

2 个赞

补充说明:pg12 分支也无法正常工作(尽管它似乎尝试下载不同版本的容器),但在执行 db:migrate 时仍出现相同的错误……

情况并非如此。Discourse 的基础镜像已经内置 PostgreSQL 数月之久,自 PostgreSQL 12 更新 起便是如此。

你能分享一下你的 app.yml 吗?也许你在其中强制指定了旧版基础镜像却忘了更新?

2 个赞

你的 discourse_docker 检出版本有多旧?我知道 launcher 脚本旨在自动更新,但手动运行 git pull 以确保万无一失也是值得的。

最新的基础镜像 应该是

image="discourse/base:2.0.20201004-2310"

如果你运行以下命令,会得到什么结果?

docker images | grep discourse/base

另外,该插件已在三年前被弃用::scream:

2 个赞

奇怪,我已经在最新的提交上了:

$ git branch -v
* master 4a4b0f8 DOCS: correct syntax error in readme

而且我似乎也有最新的镜像:

$ docker images
REPOSITORY             TAG                 IMAGE ID            CREATED             SIZE
discourse/base         2.0.20201004-2310   b64c37d7ab06        6 weeks ago         2.4GB
local_discourse/data   latest              253fd4d68068        3 years ago         1.7GB

我已经确认清理了旧的 Docker 镜像,并多次尝试重新构建 web 应用。

啊,我是否需要先重新构建 data 容器之类的?我还没动过它。

另外,那个插件在 3 年前就已经弃用了 :scream:

:see_no_evil: 这是我接下来要更新的列表中的下一个,但目前被当前的更新卡住了!

哦,您正在使用高级数据设置?

您需要停止 Web 服务并重建数据,以使所有数据软件更新。相关说明位于 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.